Fillid in many more missing functions (such as Enable())
There are still things to fix when compiling sockets .. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@687 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
		@@ -60,6 +60,7 @@ class wxCheckBox: public wxControl
 | 
			
		||||
    void SetValue( bool state );
 | 
			
		||||
    bool GetValue(void) const;
 | 
			
		||||
    void SetFont( const wxFont &font );
 | 
			
		||||
    void Enable( bool enable );
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif // __GTKCHECKBOXH__
 | 
			
		||||
 
 | 
			
		||||
@@ -36,16 +36,13 @@ class wxControl: public wxWindow
 | 
			
		||||
DECLARE_DYNAMIC_CLASS(wxControl)
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
  // construction
 | 
			
		||||
  wxControl();
 | 
			
		||||
  wxControl( wxWindow *parent, wxWindowID id, 
 | 
			
		||||
      const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, 
 | 
			
		||||
      long style = 0, const wxString &name = wxPanelNameStr  );
 | 
			
		||||
  
 | 
			
		||||
  // overridables
 | 
			
		||||
  virtual void Command( wxCommandEvent &event );
 | 
			
		||||
 | 
			
		||||
  // accessors
 | 
			
		||||
    // this function will filter out '&' characters and will put the accelerator
 | 
			
		||||
    // char (the one immediately after '&') into m_chAccel (@@ not yet)
 | 
			
		||||
  virtual void SetLabel( const wxString &label );
 | 
			
		||||
@@ -53,8 +50,7 @@ public:
 | 
			
		||||
 | 
			
		||||
protected:
 | 
			
		||||
  wxString   m_label;
 | 
			
		||||
  // when we implement keyboard interface we will make use of this, but not yet
 | 
			
		||||
  //char       m_chAccel;
 | 
			
		||||
  char       m_chAccel;  // enabled to avoid breaking binary compatibility later on
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif // __GTKCONTROLH__
 | 
			
		||||
 
 | 
			
		||||
@@ -65,7 +65,6 @@ class wxRadioBox: public wxControl
 | 
			
		||||
    void SetSelection( int n );
 | 
			
		||||
    int GetSelection(void) const;
 | 
			
		||||
    wxString GetString( int n ) const;
 | 
			
		||||
    wxString GetLabel(void) const;
 | 
			
		||||
    void SetLabel( const wxString& label );
 | 
			
		||||
    void SetLabel( int item, const wxString& label );
 | 
			
		||||
    void SetLabel( int item, wxBitmap *bitmap );
 | 
			
		||||
@@ -79,8 +78,8 @@ class wxRadioBox: public wxControl
 | 
			
		||||
    virtual int Number(void) const;
 | 
			
		||||
    int GetNumberOfRowsOrCols(void) const;
 | 
			
		||||
    void SetNumberOfRowsOrCols( int n );
 | 
			
		||||
    
 | 
			
		||||
    void SetFont( const wxFont &font );
 | 
			
		||||
 | 
			
		||||
    void OnSize( wxSizeEvent &event );
 | 
			
		||||
    
 | 
			
		||||
  // implementation    
 | 
			
		||||
 
 | 
			
		||||
@@ -62,6 +62,7 @@ class wxRadioButton: public wxControl
 | 
			
		||||
    virtual void SetValue(bool val);
 | 
			
		||||
    virtual bool GetValue(void) const;
 | 
			
		||||
    void SetFont( const wxFont &font );
 | 
			
		||||
    void Enable( bool enable );
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif // __GTKRADIOBUTTONH__
 | 
			
		||||
 
 | 
			
		||||
@@ -50,6 +50,7 @@ class wxStaticBox: public wxControl
 | 
			
		||||
    bool Create( wxWindow *parent, wxWindowID id, const wxString &label,
 | 
			
		||||
      const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, 
 | 
			
		||||
      long style = 0, const wxString &name = wxStaticBoxNameStr  );
 | 
			
		||||
    void SetLabel( const wxString &label );
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif // __GTKSTATICBOXH__
 | 
			
		||||
 
 | 
			
		||||
@@ -60,6 +60,7 @@ class wxCheckBox: public wxControl
 | 
			
		||||
    void SetValue( bool state );
 | 
			
		||||
    bool GetValue(void) const;
 | 
			
		||||
    void SetFont( const wxFont &font );
 | 
			
		||||
    void Enable( bool enable );
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif // __GTKCHECKBOXH__
 | 
			
		||||
 
 | 
			
		||||
@@ -36,16 +36,13 @@ class wxControl: public wxWindow
 | 
			
		||||
DECLARE_DYNAMIC_CLASS(wxControl)
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
  // construction
 | 
			
		||||
  wxControl();
 | 
			
		||||
  wxControl( wxWindow *parent, wxWindowID id, 
 | 
			
		||||
      const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, 
 | 
			
		||||
      long style = 0, const wxString &name = wxPanelNameStr  );
 | 
			
		||||
  
 | 
			
		||||
  // overridables
 | 
			
		||||
  virtual void Command( wxCommandEvent &event );
 | 
			
		||||
 | 
			
		||||
  // accessors
 | 
			
		||||
    // this function will filter out '&' characters and will put the accelerator
 | 
			
		||||
    // char (the one immediately after '&') into m_chAccel (@@ not yet)
 | 
			
		||||
  virtual void SetLabel( const wxString &label );
 | 
			
		||||
@@ -53,8 +50,7 @@ public:
 | 
			
		||||
 | 
			
		||||
protected:
 | 
			
		||||
  wxString   m_label;
 | 
			
		||||
  // when we implement keyboard interface we will make use of this, but not yet
 | 
			
		||||
  //char       m_chAccel;
 | 
			
		||||
  char       m_chAccel;  // enabled to avoid breaking binary compatibility later on
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif // __GTKCONTROLH__
 | 
			
		||||
 
 | 
			
		||||
@@ -65,7 +65,6 @@ class wxRadioBox: public wxControl
 | 
			
		||||
    void SetSelection( int n );
 | 
			
		||||
    int GetSelection(void) const;
 | 
			
		||||
    wxString GetString( int n ) const;
 | 
			
		||||
    wxString GetLabel(void) const;
 | 
			
		||||
    void SetLabel( const wxString& label );
 | 
			
		||||
    void SetLabel( int item, const wxString& label );
 | 
			
		||||
    void SetLabel( int item, wxBitmap *bitmap );
 | 
			
		||||
@@ -79,8 +78,8 @@ class wxRadioBox: public wxControl
 | 
			
		||||
    virtual int Number(void) const;
 | 
			
		||||
    int GetNumberOfRowsOrCols(void) const;
 | 
			
		||||
    void SetNumberOfRowsOrCols( int n );
 | 
			
		||||
    
 | 
			
		||||
    void SetFont( const wxFont &font );
 | 
			
		||||
 | 
			
		||||
    void OnSize( wxSizeEvent &event );
 | 
			
		||||
    
 | 
			
		||||
  // implementation    
 | 
			
		||||
 
 | 
			
		||||
@@ -62,6 +62,7 @@ class wxRadioButton: public wxControl
 | 
			
		||||
    virtual void SetValue(bool val);
 | 
			
		||||
    virtual bool GetValue(void) const;
 | 
			
		||||
    void SetFont( const wxFont &font );
 | 
			
		||||
    void Enable( bool enable );
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif // __GTKRADIOBUTTONH__
 | 
			
		||||
 
 | 
			
		||||
@@ -50,6 +50,7 @@ class wxStaticBox: public wxControl
 | 
			
		||||
    bool Create( wxWindow *parent, wxWindowID id, const wxString &label,
 | 
			
		||||
      const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, 
 | 
			
		||||
      long style = 0, const wxString &name = wxStaticBoxNameStr  );
 | 
			
		||||
    void SetLabel( const wxString &label );
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif // __GTKSTATICBOXH__
 | 
			
		||||
 
 | 
			
		||||
@@ -103,7 +103,7 @@ const   int MINIMAL_ABOUT  = 102;
 | 
			
		||||
bool MyApp::OnInit(void)
 | 
			
		||||
{
 | 
			
		||||
  // Create the main frame window
 | 
			
		||||
  MyFrame *frame = new MyFrame((wxFrame *) NULL, (char *) "Controls wxWindows App", 50, 50, 500, 420 );
 | 
			
		||||
  MyFrame *frame = new MyFrame((wxFrame *) NULL, (char *) "Controls wxWindows App", 50, 50, 530, 420 );
 | 
			
		||||
  
 | 
			
		||||
  // Give it an icon
 | 
			
		||||
#ifdef __WXMSW__
 | 
			
		||||
@@ -140,6 +140,7 @@ const  ID_LISTBOX_CLEAR     = 133;
 | 
			
		||||
const  ID_LISTBOX_APPEND    = 134;
 | 
			
		||||
const  ID_LISTBOX_DELETE    = 135;
 | 
			
		||||
const  ID_LISTBOX_FONT      = 136;
 | 
			
		||||
const  ID_LISTBOX_ENABLE    = 137;
 | 
			
		||||
 | 
			
		||||
const  ID_CHOICE            = 120;
 | 
			
		||||
const  ID_CHOICE_SEL_NUM    = 121;
 | 
			
		||||
@@ -148,6 +149,7 @@ const  ID_CHOICE_CLEAR      = 123;
 | 
			
		||||
const  ID_CHOICE_APPEND     = 124;
 | 
			
		||||
const  ID_CHOICE_DELETE     = 125;
 | 
			
		||||
const  ID_CHOICE_FONT       = 126;
 | 
			
		||||
const  ID_CHOICE_ENABLE     = 127;
 | 
			
		||||
 | 
			
		||||
const  ID_COMBO             = 140;
 | 
			
		||||
const  ID_COMBO_SEL_NUM     = 141;
 | 
			
		||||
@@ -156,6 +158,7 @@ const  ID_COMBO_CLEAR       = 143;
 | 
			
		||||
const  ID_COMBO_APPEND      = 144;
 | 
			
		||||
const  ID_COMBO_DELETE      = 145;
 | 
			
		||||
const  ID_COMBO_FONT        = 146;
 | 
			
		||||
const  ID_COMBO_ENABLE      = 147;
 | 
			
		||||
 | 
			
		||||
const  ID_TEXT              = 150;
 | 
			
		||||
 | 
			
		||||
@@ -163,6 +166,7 @@ const  ID_RADIOBOX          = 160;
 | 
			
		||||
const  ID_RADIOBOX_SEL_NUM  = 161;
 | 
			
		||||
const  ID_RADIOBOX_SEL_STR  = 162;
 | 
			
		||||
const  ID_RADIOBOX_FONT     = 163;
 | 
			
		||||
const  ID_RADIOBOX_ENABLE   = 164;
 | 
			
		||||
 | 
			
		||||
const  ID_SET_FONT          = 170;
 | 
			
		||||
 | 
			
		||||
@@ -175,6 +179,7 @@ BEGIN_EVENT_TABLE(MyPanel, wxPanel)
 | 
			
		||||
  EVT_BUTTON    (ID_LISTBOX_APPEND,     MyPanel::OnListBoxButtons)
 | 
			
		||||
  EVT_BUTTON    (ID_LISTBOX_DELETE,     MyPanel::OnListBoxButtons)
 | 
			
		||||
  EVT_BUTTON    (ID_LISTBOX_FONT,       MyPanel::OnListBoxButtons)
 | 
			
		||||
  EVT_CHECKBOX  (ID_LISTBOX_ENABLE,     MyPanel::OnListBoxButtons)
 | 
			
		||||
  EVT_CHOICE    (ID_CHOICE,             MyPanel::OnChoice)
 | 
			
		||||
  EVT_BUTTON    (ID_CHOICE_SEL_NUM,     MyPanel::OnChoiceButtons)
 | 
			
		||||
  EVT_BUTTON    (ID_CHOICE_SEL_STR,     MyPanel::OnChoiceButtons)
 | 
			
		||||
@@ -182,6 +187,7 @@ BEGIN_EVENT_TABLE(MyPanel, wxPanel)
 | 
			
		||||
  EVT_BUTTON    (ID_CHOICE_APPEND,      MyPanel::OnChoiceButtons)
 | 
			
		||||
  EVT_BUTTON    (ID_CHOICE_DELETE,      MyPanel::OnChoiceButtons)
 | 
			
		||||
  EVT_BUTTON    (ID_CHOICE_FONT,        MyPanel::OnChoiceButtons)
 | 
			
		||||
  EVT_CHECKBOX  (ID_CHOICE_ENABLE,      MyPanel::OnChoiceButtons)
 | 
			
		||||
  EVT_CHOICE    (ID_COMBO,              MyPanel::OnCombo)
 | 
			
		||||
  EVT_BUTTON    (ID_COMBO_SEL_NUM,      MyPanel::OnComboButtons)
 | 
			
		||||
  EVT_BUTTON    (ID_COMBO_SEL_STR,      MyPanel::OnComboButtons)
 | 
			
		||||
@@ -189,10 +195,12 @@ BEGIN_EVENT_TABLE(MyPanel, wxPanel)
 | 
			
		||||
  EVT_BUTTON    (ID_COMBO_APPEND,       MyPanel::OnComboButtons)
 | 
			
		||||
  EVT_BUTTON    (ID_COMBO_DELETE,       MyPanel::OnComboButtons)
 | 
			
		||||
  EVT_BUTTON    (ID_COMBO_FONT,         MyPanel::OnComboButtons)
 | 
			
		||||
  EVT_CHECKBOX  (ID_COMBO_ENABLE,       MyPanel::OnComboButtons)
 | 
			
		||||
  EVT_RADIOBOX  (ID_RADIOBOX,           MyPanel::OnRadio)
 | 
			
		||||
  EVT_BUTTON    (ID_RADIOBOX_SEL_NUM,   MyPanel::OnRadioButtons)
 | 
			
		||||
  EVT_BUTTON    (ID_RADIOBOX_SEL_STR,   MyPanel::OnRadioButtons)
 | 
			
		||||
  EVT_BUTTON    (ID_RADIOBOX_FONT,      MyPanel::OnRadioButtons)
 | 
			
		||||
  EVT_CHECKBOX  (ID_RADIOBOX_ENABLE,    MyPanel::OnRadioButtons)
 | 
			
		||||
  EVT_BUTTON    (ID_SET_FONT,           MyPanel::OnSetFont)
 | 
			
		||||
END_EVENT_TABLE()
 | 
			
		||||
 | 
			
		||||
@@ -241,32 +249,35 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) :
 | 
			
		||||
 | 
			
		||||
  wxPanel *panel = new wxPanel(m_notebook);
 | 
			
		||||
  m_listbox = new wxListBox( panel, ID_LISTBOX, wxPoint(10,10), wxSize(120,70), 4, choices );
 | 
			
		||||
  (void)new wxButton( panel, ID_LISTBOX_SEL_NUM, "Select #2", wxPoint(180,30), wxSize(100,30) );
 | 
			
		||||
  (void)new wxButton( panel, ID_LISTBOX_SEL_STR, "Select 'This'", wxPoint(300,30), wxSize(100,30) );
 | 
			
		||||
  (void)new wxButton( panel, ID_LISTBOX_CLEAR, "Clear", wxPoint(180,80), wxSize(100,30) );
 | 
			
		||||
  (void)new wxButton( panel, ID_LISTBOX_APPEND, "Append 'Hi!'", wxPoint(300,80), wxSize(100,30) );
 | 
			
		||||
  (void)new wxButton( panel, ID_LISTBOX_SEL_NUM, "Select #2", wxPoint(180,30), wxSize(140,30) );
 | 
			
		||||
  (void)new wxButton( panel, ID_LISTBOX_SEL_STR, "Select 'This'", wxPoint(340,30), wxSize(140,30) );
 | 
			
		||||
  (void)new wxButton( panel, ID_LISTBOX_CLEAR, "Clear", wxPoint(180,80), wxSize(140,30) );
 | 
			
		||||
  (void)new wxButton( panel, ID_LISTBOX_APPEND, "Append 'Hi!'", wxPoint(340,80), wxSize(140,30) );
 | 
			
		||||
  (void)new wxButton( panel, ID_LISTBOX_DELETE, "Delete selected item", wxPoint(180,130), wxSize(140,30) );
 | 
			
		||||
  (void)new wxButton( panel, ID_LISTBOX_FONT, "Set Italic font", wxPoint(180,180), wxSize(140,30) );
 | 
			
		||||
  (void)new wxButton( panel, ID_LISTBOX_FONT, "Set Italic font", wxPoint(340,130), wxSize(140,30) );
 | 
			
		||||
  (void)new wxCheckBox( panel, ID_LISTBOX_ENABLE, "Disable", wxPoint(20,130), wxSize(140,30) );
 | 
			
		||||
  m_notebook->AddPage(panel, "wxList", FALSE, Image_List);
 | 
			
		||||
  
 | 
			
		||||
  panel = new wxPanel(m_notebook);
 | 
			
		||||
  m_choice = new wxChoice( panel, ID_CHOICE, wxPoint(10,10), wxSize(120,-1), 4, choices );
 | 
			
		||||
  (void)new wxButton( panel, ID_CHOICE_SEL_NUM, "Select #2", wxPoint(180,30), wxSize(100,30) );
 | 
			
		||||
  (void)new wxButton( panel, ID_CHOICE_SEL_STR, "Select 'This'", wxPoint(300,30), wxSize(100,30) );
 | 
			
		||||
  (void)new wxButton( panel, ID_CHOICE_CLEAR, "Clear", wxPoint(180,80), wxSize(100,30) );
 | 
			
		||||
  (void)new wxButton( panel, ID_CHOICE_APPEND, "Append 'Hi!'", wxPoint(300,80), wxSize(100,30) );
 | 
			
		||||
  (void)new wxButton( panel, ID_CHOICE_SEL_NUM, "Select #2", wxPoint(180,30), wxSize(140,30) );
 | 
			
		||||
  (void)new wxButton( panel, ID_CHOICE_SEL_STR, "Select 'This'", wxPoint(340,30), wxSize(140,30) );
 | 
			
		||||
  (void)new wxButton( panel, ID_CHOICE_CLEAR, "Clear", wxPoint(180,80), wxSize(140,30) );
 | 
			
		||||
  (void)new wxButton( panel, ID_CHOICE_APPEND, "Append 'Hi!'", wxPoint(340,80), wxSize(140,30) );
 | 
			
		||||
  (void)new wxButton( panel, ID_CHOICE_DELETE, "Delete selected item", wxPoint(180,130), wxSize(140,30) );
 | 
			
		||||
  (void)new wxButton( panel, ID_CHOICE_FONT, "Set Italic font", wxPoint(180,180), wxSize(140,30) );
 | 
			
		||||
  (void)new wxButton( panel, ID_CHOICE_FONT, "Set Italic font", wxPoint(340,130), wxSize(140,30) );
 | 
			
		||||
  (void)new wxCheckBox( panel, ID_CHOICE_ENABLE, "Disable", wxPoint(20,130), wxSize(140,30) );
 | 
			
		||||
  m_notebook->AddPage(panel, "wxChoice", FALSE, Image_Choice);
 | 
			
		||||
  
 | 
			
		||||
  panel = new wxPanel(m_notebook);
 | 
			
		||||
  m_combo = new wxComboBox( panel, ID_COMBO, "This", wxPoint(10,10), wxSize(170,-1), 4, choices );
 | 
			
		||||
  (void)new wxButton( panel, ID_COMBO_SEL_NUM, "Select #2", wxPoint(180,30), wxSize(100,30) );
 | 
			
		||||
  (void)new wxButton( panel, ID_COMBO_SEL_STR, "Select 'This'", wxPoint(300,30), wxSize(100,30) );
 | 
			
		||||
  (void)new wxButton( panel, ID_COMBO_CLEAR, "Clear", wxPoint(180,80), wxSize(100,30) );
 | 
			
		||||
  (void)new wxButton( panel, ID_COMBO_APPEND, "Append 'Hi!'", wxPoint(300,80), wxSize(100,30) );
 | 
			
		||||
  (void)new wxButton( panel, ID_COMBO_SEL_NUM, "Select #2", wxPoint(180,30), wxSize(140,30) );
 | 
			
		||||
  (void)new wxButton( panel, ID_COMBO_SEL_STR, "Select 'This'", wxPoint(340,30), wxSize(140,30) );
 | 
			
		||||
  (void)new wxButton( panel, ID_COMBO_CLEAR, "Clear", wxPoint(180,80), wxSize(140,30) );
 | 
			
		||||
  (void)new wxButton( panel, ID_COMBO_APPEND, "Append 'Hi!'", wxPoint(340,80), wxSize(140,30) );
 | 
			
		||||
  (void)new wxButton( panel, ID_COMBO_DELETE, "Delete selected item", wxPoint(180,130), wxSize(140,30) );
 | 
			
		||||
  (void)new wxButton( panel, ID_COMBO_FONT, "Set Italic font", wxPoint(180,180), wxSize(140,30) );
 | 
			
		||||
  (void)new wxButton( panel, ID_COMBO_FONT, "Set Italic font", wxPoint(340,130), wxSize(140,30) );
 | 
			
		||||
  (void)new wxCheckBox( panel, ID_COMBO_ENABLE, "Disable", wxPoint(20,130), wxSize(140,30) );
 | 
			
		||||
  m_notebook->AddPage(panel, "wxComboBox", FALSE, Image_Combo);
 | 
			
		||||
  
 | 
			
		||||
  wxTextCtrl *text = new wxTextCtrl( m_notebook, ID_TEXT, "Write text here.", wxPoint(10,10), wxSize(120,100), wxTE_MULTILINE );
 | 
			
		||||
@@ -274,10 +285,11 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) :
 | 
			
		||||
  
 | 
			
		||||
  panel = new wxPanel(m_notebook);
 | 
			
		||||
  m_radio = new wxRadioBox( panel, ID_RADIOBOX, "This", wxPoint(10,10), wxSize(-1,-1), 4, choices );
 | 
			
		||||
  (void)new wxButton( panel, ID_RADIOBOX_SEL_NUM, "Select #2", wxPoint(200,30), wxSize(100,30) );
 | 
			
		||||
  (void)new wxButton( panel, ID_RADIOBOX_SEL_STR, "Select 'This'", wxPoint(200,80), wxSize(100,30) );
 | 
			
		||||
  (void)new wxButton( panel, ID_RADIOBOX_FONT, "Set Italic font", wxPoint(200,130), wxSize(160,30) );
 | 
			
		||||
  m_fontButton = new wxButton( panel, ID_SET_FONT, "Set more Italic font", wxPoint(200,180), wxSize(160,30) );
 | 
			
		||||
  (void)new wxButton( panel, ID_RADIOBOX_SEL_NUM, "Select #2", wxPoint(180,30), wxSize(140,30) );
 | 
			
		||||
  (void)new wxButton( panel, ID_RADIOBOX_SEL_STR, "Select 'This'", wxPoint(180,80), wxSize(140,30) );
 | 
			
		||||
  (void)new wxButton( panel, ID_RADIOBOX_FONT, "Set Italic font", wxPoint(180,130), wxSize(140,30) );
 | 
			
		||||
  (void)new wxCheckBox( panel, ID_RADIOBOX_ENABLE, "Disable", wxPoint(20,130), wxSize(140,30) );
 | 
			
		||||
  m_fontButton = new wxButton( panel, ID_SET_FONT, "Set more Italic font", wxPoint(340,30), wxSize(160,30) );
 | 
			
		||||
  m_notebook->AddPage(panel, "wxRadioBox", FALSE, Image_Radio);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -302,6 +314,11 @@ void MyPanel::OnListBoxButtons( wxCommandEvent &event )
 | 
			
		||||
{
 | 
			
		||||
  switch (event.GetId())
 | 
			
		||||
  {
 | 
			
		||||
    case ID_LISTBOX_ENABLE:
 | 
			
		||||
    {
 | 
			
		||||
      m_listbox->Enable( !((bool)event.GetInt()) );
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
    case ID_LISTBOX_SEL_NUM:
 | 
			
		||||
    {
 | 
			
		||||
      m_listbox->SetSelection( 2 );
 | 
			
		||||
@@ -347,6 +364,11 @@ void MyPanel::OnChoiceButtons( wxCommandEvent &event )
 | 
			
		||||
{
 | 
			
		||||
  switch (event.GetId())
 | 
			
		||||
  {
 | 
			
		||||
    case ID_CHOICE_ENABLE:
 | 
			
		||||
    {
 | 
			
		||||
      m_choice->Enable( !((bool)event.GetInt()) );
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
    case ID_CHOICE_SEL_NUM:
 | 
			
		||||
    {
 | 
			
		||||
      m_choice->SetSelection( 2 );
 | 
			
		||||
@@ -392,6 +414,11 @@ void MyPanel::OnComboButtons( wxCommandEvent &event )
 | 
			
		||||
{
 | 
			
		||||
  switch (event.GetId())
 | 
			
		||||
  {
 | 
			
		||||
    case ID_COMBO_ENABLE:
 | 
			
		||||
    {
 | 
			
		||||
      m_combo->Enable( !((bool)event.GetInt()) );
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
    case ID_COMBO_SEL_NUM:
 | 
			
		||||
    {
 | 
			
		||||
      m_combo->SetSelection( 2 );
 | 
			
		||||
@@ -437,6 +464,11 @@ void MyPanel::OnRadioButtons( wxCommandEvent &event )
 | 
			
		||||
{
 | 
			
		||||
  switch (event.GetId())
 | 
			
		||||
  {
 | 
			
		||||
    case ID_RADIOBOX_ENABLE:
 | 
			
		||||
    {
 | 
			
		||||
      m_radio->Enable( !((bool)event.GetInt()) );
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
    case ID_RADIOBOX_SEL_NUM:
 | 
			
		||||
    {
 | 
			
		||||
      m_radio->SetSelection( 2 );
 | 
			
		||||
 
 | 
			
		||||
@@ -55,14 +55,8 @@ LIB_CPP_SRC=\
 | 
			
		||||
 common/validate.cpp \
 | 
			
		||||
 common/valtext.cpp \
 | 
			
		||||
 common/wxexpr.cpp \
 | 
			
		||||
 common/tokenzr.cpp \
 | 
			
		||||
 common/socket.cpp \
 | 
			
		||||
 common/sckaddr.cpp \
 | 
			
		||||
 common/protocol.cpp \
 | 
			
		||||
 common/url.cpp \
 | 
			
		||||
 common/http.cpp \
 | 
			
		||||
 common/ftp.cpp \
 | 
			
		||||
 common/sckfile.cpp \
 | 
			
		||||
 common/sckipc.cpp \
 | 
			
		||||
\
 | 
			
		||||
 gtk/accel.cpp \
 | 
			
		||||
 
 | 
			
		||||
@@ -89,6 +89,14 @@ bool wxCheckBox::GetValue(void) const
 | 
			
		||||
  return tb->active;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void wxCheckBox::Enable( bool enable )
 | 
			
		||||
{
 | 
			
		||||
  wxControl::Enable( enable );
 | 
			
		||||
  GtkButton *bin = GTK_BUTTON( m_widget );
 | 
			
		||||
  GtkWidget *label = bin->child;
 | 
			
		||||
  gtk_widget_set_sensitive( label, enable );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void wxCheckBox::SetFont( const wxFont &font )
 | 
			
		||||
{
 | 
			
		||||
  if (((wxFont*)&font)->Ok())
 | 
			
		||||
 
 | 
			
		||||
@@ -177,7 +177,12 @@ void wxRadioBox::SetSelection( int n )
 | 
			
		||||
{
 | 
			
		||||
  GSList *item = gtk_radio_button_group( m_radio );
 | 
			
		||||
  item = g_slist_nth( item, g_slist_length(item)-n-1 );
 | 
			
		||||
  if (!item) return;
 | 
			
		||||
  
 | 
			
		||||
  if (!item)
 | 
			
		||||
  {
 | 
			
		||||
    wxFAIL_MSG( "wxRadioBox wrong index" );
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  GtkToggleButton *button = GTK_TOGGLE_BUTTON( item->data );
 | 
			
		||||
  
 | 
			
		||||
@@ -205,28 +210,46 @@ wxString wxRadioBox::GetString( int n ) const
 | 
			
		||||
  GSList *item = gtk_radio_button_group( m_radio );
 | 
			
		||||
  
 | 
			
		||||
  item = g_slist_nth( item, g_slist_length(item)-n-1 );
 | 
			
		||||
  if (!item) return "";
 | 
			
		||||
  
 | 
			
		||||
  GtkToggleButton *button = GTK_TOGGLE_BUTTON( item->data );
 | 
			
		||||
  if (!item)
 | 
			
		||||
  {
 | 
			
		||||
    wxFAIL_MSG( "wxRadioBox wrong index" );
 | 
			
		||||
    return "";
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  GtkLabel *label = GTK_LABEL( GTK_BUTTON(button)->child );
 | 
			
		||||
  GtkButton *button = GTK_BUTTON( item->data );
 | 
			
		||||
  GtkLabel *label = GTK_LABEL( button->child );
 | 
			
		||||
  
 | 
			
		||||
  return wxString( label->label );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
wxString wxRadioBox::GetLabel(void) const
 | 
			
		||||
wxString wxRadioBox::GetLabel( int item ) const
 | 
			
		||||
{
 | 
			
		||||
  return wxControl::GetLabel();
 | 
			
		||||
  return GetString( item );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void wxRadioBox::SetLabel( const wxString& WXUNUSED(label) )
 | 
			
		||||
void wxRadioBox::SetLabel( const wxString& label )
 | 
			
		||||
{
 | 
			
		||||
  wxFAIL_MSG("wxRadioBox::SetLabel not implemented.");
 | 
			
		||||
  wxControl::SetLabel( label );
 | 
			
		||||
  GtkFrame *frame = GTK_FRAME( m_widget );
 | 
			
		||||
  gtk_frame_set_label( frame, wxControl::GetLabel() );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void wxRadioBox::SetLabel( int WXUNUSED(item), const wxString& WXUNUSED(label) )
 | 
			
		||||
void wxRadioBox::SetLabel( int item, const wxString& label )
 | 
			
		||||
{
 | 
			
		||||
  wxFAIL_MSG("wxRadioBox::SetLabel not implemented.");
 | 
			
		||||
  GSList *list = gtk_radio_button_group( m_radio );
 | 
			
		||||
  list = g_slist_nth( list, g_slist_length(list)-item-1 );
 | 
			
		||||
  
 | 
			
		||||
  if (!list)
 | 
			
		||||
  {
 | 
			
		||||
    wxFAIL_MSG( "wxRadioBox wrong index" );
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  GtkButton *button = GTK_BUTTON( list->data );
 | 
			
		||||
  GtkLabel *g_label = GTK_LABEL( button->child );
 | 
			
		||||
  
 | 
			
		||||
  gtk_label_set( g_label, label );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void wxRadioBox::SetLabel( int WXUNUSED(item), wxBitmap *WXUNUSED(bitmap) )
 | 
			
		||||
@@ -234,25 +257,56 @@ void wxRadioBox::SetLabel( int WXUNUSED(item), wxBitmap *WXUNUSED(bitmap) )
 | 
			
		||||
  wxFAIL_MSG("wxRadioBox::SetLabel not implemented.");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
wxString wxRadioBox::GetLabel( int WXUNUSED(item) ) const
 | 
			
		||||
void wxRadioBox::Enable( bool enable )
 | 
			
		||||
{
 | 
			
		||||
  wxFAIL_MSG("wxRadioBox::GetLabel not implemented.");
 | 
			
		||||
  return "";
 | 
			
		||||
  wxControl::Enable( enable );
 | 
			
		||||
  
 | 
			
		||||
  GSList *item = gtk_radio_button_group( m_radio );
 | 
			
		||||
  while (item)
 | 
			
		||||
  {
 | 
			
		||||
    GtkButton *button = GTK_BUTTON( item->data );
 | 
			
		||||
    GtkWidget *label = button->child;
 | 
			
		||||
    gtk_widget_set_sensitive( GTK_WIDGET(button), enable );
 | 
			
		||||
    gtk_widget_set_sensitive( label, enable );
 | 
			
		||||
    item = item->next;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void wxRadioBox::Enable( bool WXUNUSED(enable) )
 | 
			
		||||
void wxRadioBox::Enable( int item, bool enable )
 | 
			
		||||
{
 | 
			
		||||
  wxFAIL_MSG("wxRadioBox::Enable not implemented.");
 | 
			
		||||
  GSList *list = gtk_radio_button_group( m_radio );
 | 
			
		||||
  list = g_slist_nth( list, g_slist_length(list)-item-1 );
 | 
			
		||||
  
 | 
			
		||||
  if (!list)
 | 
			
		||||
  {
 | 
			
		||||
    wxFAIL_MSG( "wxRadioBox wrong index" );
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  GtkButton *button = GTK_BUTTON( list->data );
 | 
			
		||||
  
 | 
			
		||||
  GtkWidget *label = button->child;
 | 
			
		||||
  gtk_widget_set_sensitive( GTK_WIDGET(button), enable );
 | 
			
		||||
  gtk_widget_set_sensitive( label, enable );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void wxRadioBox::Enable( int WXUNUSED(item), bool WXUNUSED(enable) )
 | 
			
		||||
void wxRadioBox::Show( int item, bool show )
 | 
			
		||||
{
 | 
			
		||||
  wxFAIL_MSG("wxRadioBox::Enable not implemented.");
 | 
			
		||||
}
 | 
			
		||||
  GSList *list = gtk_radio_button_group( m_radio );
 | 
			
		||||
  list = g_slist_nth( list, g_slist_length(list)-item-1 );
 | 
			
		||||
  
 | 
			
		||||
  if (!list)
 | 
			
		||||
  {
 | 
			
		||||
    wxFAIL_MSG( "wxRadioBox wrong index" );
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  GtkWidget *button = GTK_WIDGET( list->data );
 | 
			
		||||
 | 
			
		||||
void wxRadioBox::Show( int WXUNUSED(item), bool WXUNUSED(show) )
 | 
			
		||||
{
 | 
			
		||||
  wxFAIL_MSG("wxRadioBox::Show not implemented.");
 | 
			
		||||
  if (show)
 | 
			
		||||
    gtk_widget_show( button );
 | 
			
		||||
  else
 | 
			
		||||
    gtk_widget_hide( button );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
wxString wxRadioBox::GetStringSelection(void) const
 | 
			
		||||
 
 | 
			
		||||
@@ -86,6 +86,14 @@ bool wxRadioButton::GetValue(void) const
 | 
			
		||||
  return GTK_TOGGLE_BUTTON(m_widget)->active;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void wxRadioButton::Enable( bool enable )
 | 
			
		||||
{
 | 
			
		||||
  wxControl::Enable( enable );
 | 
			
		||||
  GtkButton *bin = GTK_BUTTON( m_widget );
 | 
			
		||||
  GtkWidget *label = bin->child;
 | 
			
		||||
  gtk_widget_set_sensitive( label, enable );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void wxRadioButton::SetFont( const wxFont &font )
 | 
			
		||||
{
 | 
			
		||||
  if (((wxFont*)&font)->Ok())
 | 
			
		||||
 
 | 
			
		||||
@@ -48,3 +48,10 @@ bool wxStaticBox::Create( wxWindow *parent, wxWindowID id, const wxString &label
 | 
			
		||||
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void wxStaticBox::SetLabel( const wxString &label )
 | 
			
		||||
{
 | 
			
		||||
  wxControl::SetLabel( label );
 | 
			
		||||
  GtkFrame *frame = GTK_FRAME( m_widget );
 | 
			
		||||
  gtk_frame_set_label( frame, GetLabel() );
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -89,6 +89,14 @@ bool wxCheckBox::GetValue(void) const
 | 
			
		||||
  return tb->active;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void wxCheckBox::Enable( bool enable )
 | 
			
		||||
{
 | 
			
		||||
  wxControl::Enable( enable );
 | 
			
		||||
  GtkButton *bin = GTK_BUTTON( m_widget );
 | 
			
		||||
  GtkWidget *label = bin->child;
 | 
			
		||||
  gtk_widget_set_sensitive( label, enable );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void wxCheckBox::SetFont( const wxFont &font )
 | 
			
		||||
{
 | 
			
		||||
  if (((wxFont*)&font)->Ok())
 | 
			
		||||
 
 | 
			
		||||
@@ -177,7 +177,12 @@ void wxRadioBox::SetSelection( int n )
 | 
			
		||||
{
 | 
			
		||||
  GSList *item = gtk_radio_button_group( m_radio );
 | 
			
		||||
  item = g_slist_nth( item, g_slist_length(item)-n-1 );
 | 
			
		||||
  if (!item) return;
 | 
			
		||||
  
 | 
			
		||||
  if (!item)
 | 
			
		||||
  {
 | 
			
		||||
    wxFAIL_MSG( "wxRadioBox wrong index" );
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  GtkToggleButton *button = GTK_TOGGLE_BUTTON( item->data );
 | 
			
		||||
  
 | 
			
		||||
@@ -205,28 +210,46 @@ wxString wxRadioBox::GetString( int n ) const
 | 
			
		||||
  GSList *item = gtk_radio_button_group( m_radio );
 | 
			
		||||
  
 | 
			
		||||
  item = g_slist_nth( item, g_slist_length(item)-n-1 );
 | 
			
		||||
  if (!item) return "";
 | 
			
		||||
  
 | 
			
		||||
  GtkToggleButton *button = GTK_TOGGLE_BUTTON( item->data );
 | 
			
		||||
  if (!item)
 | 
			
		||||
  {
 | 
			
		||||
    wxFAIL_MSG( "wxRadioBox wrong index" );
 | 
			
		||||
    return "";
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  GtkLabel *label = GTK_LABEL( GTK_BUTTON(button)->child );
 | 
			
		||||
  GtkButton *button = GTK_BUTTON( item->data );
 | 
			
		||||
  GtkLabel *label = GTK_LABEL( button->child );
 | 
			
		||||
  
 | 
			
		||||
  return wxString( label->label );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
wxString wxRadioBox::GetLabel(void) const
 | 
			
		||||
wxString wxRadioBox::GetLabel( int item ) const
 | 
			
		||||
{
 | 
			
		||||
  return wxControl::GetLabel();
 | 
			
		||||
  return GetString( item );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void wxRadioBox::SetLabel( const wxString& WXUNUSED(label) )
 | 
			
		||||
void wxRadioBox::SetLabel( const wxString& label )
 | 
			
		||||
{
 | 
			
		||||
  wxFAIL_MSG("wxRadioBox::SetLabel not implemented.");
 | 
			
		||||
  wxControl::SetLabel( label );
 | 
			
		||||
  GtkFrame *frame = GTK_FRAME( m_widget );
 | 
			
		||||
  gtk_frame_set_label( frame, wxControl::GetLabel() );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void wxRadioBox::SetLabel( int WXUNUSED(item), const wxString& WXUNUSED(label) )
 | 
			
		||||
void wxRadioBox::SetLabel( int item, const wxString& label )
 | 
			
		||||
{
 | 
			
		||||
  wxFAIL_MSG("wxRadioBox::SetLabel not implemented.");
 | 
			
		||||
  GSList *list = gtk_radio_button_group( m_radio );
 | 
			
		||||
  list = g_slist_nth( list, g_slist_length(list)-item-1 );
 | 
			
		||||
  
 | 
			
		||||
  if (!list)
 | 
			
		||||
  {
 | 
			
		||||
    wxFAIL_MSG( "wxRadioBox wrong index" );
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  GtkButton *button = GTK_BUTTON( list->data );
 | 
			
		||||
  GtkLabel *g_label = GTK_LABEL( button->child );
 | 
			
		||||
  
 | 
			
		||||
  gtk_label_set( g_label, label );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void wxRadioBox::SetLabel( int WXUNUSED(item), wxBitmap *WXUNUSED(bitmap) )
 | 
			
		||||
@@ -234,25 +257,56 @@ void wxRadioBox::SetLabel( int WXUNUSED(item), wxBitmap *WXUNUSED(bitmap) )
 | 
			
		||||
  wxFAIL_MSG("wxRadioBox::SetLabel not implemented.");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
wxString wxRadioBox::GetLabel( int WXUNUSED(item) ) const
 | 
			
		||||
void wxRadioBox::Enable( bool enable )
 | 
			
		||||
{
 | 
			
		||||
  wxFAIL_MSG("wxRadioBox::GetLabel not implemented.");
 | 
			
		||||
  return "";
 | 
			
		||||
  wxControl::Enable( enable );
 | 
			
		||||
  
 | 
			
		||||
  GSList *item = gtk_radio_button_group( m_radio );
 | 
			
		||||
  while (item)
 | 
			
		||||
  {
 | 
			
		||||
    GtkButton *button = GTK_BUTTON( item->data );
 | 
			
		||||
    GtkWidget *label = button->child;
 | 
			
		||||
    gtk_widget_set_sensitive( GTK_WIDGET(button), enable );
 | 
			
		||||
    gtk_widget_set_sensitive( label, enable );
 | 
			
		||||
    item = item->next;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void wxRadioBox::Enable( bool WXUNUSED(enable) )
 | 
			
		||||
void wxRadioBox::Enable( int item, bool enable )
 | 
			
		||||
{
 | 
			
		||||
  wxFAIL_MSG("wxRadioBox::Enable not implemented.");
 | 
			
		||||
  GSList *list = gtk_radio_button_group( m_radio );
 | 
			
		||||
  list = g_slist_nth( list, g_slist_length(list)-item-1 );
 | 
			
		||||
  
 | 
			
		||||
  if (!list)
 | 
			
		||||
  {
 | 
			
		||||
    wxFAIL_MSG( "wxRadioBox wrong index" );
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  GtkButton *button = GTK_BUTTON( list->data );
 | 
			
		||||
  
 | 
			
		||||
  GtkWidget *label = button->child;
 | 
			
		||||
  gtk_widget_set_sensitive( GTK_WIDGET(button), enable );
 | 
			
		||||
  gtk_widget_set_sensitive( label, enable );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void wxRadioBox::Enable( int WXUNUSED(item), bool WXUNUSED(enable) )
 | 
			
		||||
void wxRadioBox::Show( int item, bool show )
 | 
			
		||||
{
 | 
			
		||||
  wxFAIL_MSG("wxRadioBox::Enable not implemented.");
 | 
			
		||||
}
 | 
			
		||||
  GSList *list = gtk_radio_button_group( m_radio );
 | 
			
		||||
  list = g_slist_nth( list, g_slist_length(list)-item-1 );
 | 
			
		||||
  
 | 
			
		||||
  if (!list)
 | 
			
		||||
  {
 | 
			
		||||
    wxFAIL_MSG( "wxRadioBox wrong index" );
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  GtkWidget *button = GTK_WIDGET( list->data );
 | 
			
		||||
 | 
			
		||||
void wxRadioBox::Show( int WXUNUSED(item), bool WXUNUSED(show) )
 | 
			
		||||
{
 | 
			
		||||
  wxFAIL_MSG("wxRadioBox::Show not implemented.");
 | 
			
		||||
  if (show)
 | 
			
		||||
    gtk_widget_show( button );
 | 
			
		||||
  else
 | 
			
		||||
    gtk_widget_hide( button );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
wxString wxRadioBox::GetStringSelection(void) const
 | 
			
		||||
 
 | 
			
		||||
@@ -86,6 +86,14 @@ bool wxRadioButton::GetValue(void) const
 | 
			
		||||
  return GTK_TOGGLE_BUTTON(m_widget)->active;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void wxRadioButton::Enable( bool enable )
 | 
			
		||||
{
 | 
			
		||||
  wxControl::Enable( enable );
 | 
			
		||||
  GtkButton *bin = GTK_BUTTON( m_widget );
 | 
			
		||||
  GtkWidget *label = bin->child;
 | 
			
		||||
  gtk_widget_set_sensitive( label, enable );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void wxRadioButton::SetFont( const wxFont &font )
 | 
			
		||||
{
 | 
			
		||||
  if (((wxFont*)&font)->Ok())
 | 
			
		||||
 
 | 
			
		||||
@@ -48,3 +48,10 @@ bool wxStaticBox::Create( wxWindow *parent, wxWindowID id, const wxString &label
 | 
			
		||||
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void wxStaticBox::SetLabel( const wxString &label )
 | 
			
		||||
{
 | 
			
		||||
  wxControl::SetLabel( label );
 | 
			
		||||
  GtkFrame *frame = GTK_FRAME( m_widget );
 | 
			
		||||
  gtk_frame_set_label( frame, GetLabel() );
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user