#include "wx/notebook.h"
#include "wx/imaglist.h"
#include "wx/spinbutt.h"
-#include "wx/clipbrd.h"
-#include "wx/tooltip.h"
+
+#if wxUSE_CLIPBOARD
+ #include "wx/dataobj.h"
+ #include "wx/clipbrd.h"
+#endif
+
+#if wxUSE_TOOLTIPS
+ #include "wx/tooltip.h"
+#endif
#if defined(__WXGTK__) || defined(__WXMOTIF__)
#define USE_XPM
class MyApp: public wxApp
{
- public:
- bool OnInit(void);
+public:
+ bool OnInit();
};
// a text ctrl which allows to call different wxTextCtrl functions
class MyPanel: public wxPanel
{
- public:
-
+public:
MyPanel(wxFrame *frame, int x, int y, int w, int h);
virtual ~MyPanel();
-
+
void OnSize( wxSizeEvent& event );
void OnListBox( wxCommandEvent &event );
void OnListBoxDoubleClick( wxCommandEvent &event );
void OnCopyToClipboard( wxCommandEvent &event );
void OnMoveToEndOfText( wxCommandEvent &event );
void OnMoveToEndOfEntry( wxCommandEvent &event );
-
+
wxListBox *m_listbox;
wxChoice *m_choice;
wxComboBox *m_combo;
MyTextCtrl *m_multitext;
MyTextCtrl *m_textentry;
wxCheckBox *m_checkbox;
-
+
wxTextCtrl *m_text;
wxNotebook *m_notebook;
- DECLARE_EVENT_TABLE()
+private:
+ DECLARE_EVENT_TABLE()
};
class MyFrame: public wxFrame
{
- public:
-
+public:
MyFrame(wxFrame *frame, char *title, int x, int y, int w, int h);
- public:
-
void OnQuit(wxCommandEvent& event);
void OnAbout(wxCommandEvent& event);
void OnIdle( wxIdleEvent& event );
void OnSize( wxSizeEvent& event );
- DECLARE_EVENT_TABLE()
+private:
+ DECLARE_EVENT_TABLE()
};
//----------------------------------------------------------------------
const int MINIMAL_TEXT = 101;
const int MINIMAL_ABOUT = 102;
-bool MyApp::OnInit(void)
+bool MyApp::OnInit()
{
// Create the main frame window
MyFrame *frame = new MyFrame((wxFrame *) NULL,
END_EVENT_TABLE()
MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h )
- : m_notebook(NULL), m_text(NULL),
- wxPanel( frame, -1, wxPoint(x, y), wxSize(w, h) )
+ : wxPanel( frame, -1, wxPoint(x, y), wxSize(w, h) ),
+ m_text(NULL), m_notebook(NULL)
{
// SetBackgroundColour("cadet blue");
{
Image_List, Image_Choice, Image_Combo, Image_Text, Image_Radio, Image_Gauge, Image_Max
};
- wxImageList *imagelist = new wxImageList(32, 32, FALSE, Image_Max);
+ wxImageList *imagelist = new wxImageList(16, 16, FALSE, Image_Max);
static const char *s_iconNames[Image_Max] =
{
panel = new wxPanel(m_notebook);
m_listbox = new wxListBox( panel, ID_LISTBOX, wxPoint(10,10), wxSize(120,70), 5, choices );
+#if wxUSE_TOOLTIPS
m_listbox->SetToolTip( "This is a list box" );
+#endif
(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_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) );
button = new wxButton( panel, ID_LISTBOX_FONT, "Set Italic font", wxPoint(340,130), wxSize(140,30) );
+#if wxUSE_TOOLTIPS
button->SetToolTip( "Press here to set italic font" );
+#endif
m_checkbox = new wxCheckBox( panel, ID_LISTBOX_ENABLE, "Disable", wxPoint(20,130), wxSize(140,30) );
m_checkbox->SetValue(FALSE);
+#if wxUSE_TOOLTIPS
m_checkbox->SetToolTip( "Click here to disable the listbox" );
+#endif
m_notebook->AddPage(panel, "wxListBox", TRUE, Image_List);
panel = new wxPanel(m_notebook);
m_notebook->AddPage(panel, "wxComboBox", FALSE, Image_Combo);
panel = new wxPanel(m_notebook);
- m_textentry = new MyTextCtrl( panel, -1, "Write text here.", wxPoint(10,10), wxSize(320,28),
-// wxTE_PROCESS_ENTER);
-0);
-
- (*m_textentry) << " More text."; // this text is appended
+ m_textentry = new MyTextCtrl( panel, -1, "Some text.", wxPoint(10,10), wxSize(320,28),
+ //0);
+ wxTE_PROCESS_ENTER);
+ (*m_textentry) << " Appended.";
m_textentry->SetInsertionPoint(0);
- m_textentry->WriteText("Less text."); // this text is prepended
+ m_textentry->WriteText( "Prepended. " );
- m_multitext = new MyTextCtrl( panel, ID_TEXT, "And here.", wxPoint(10,50), wxSize(320,70),
+ m_multitext = new MyTextCtrl( panel, ID_TEXT, "Some text.", wxPoint(10,50), wxSize(320,70),
wxTE_MULTILINE );
- (*m_multitext) << " More text.\nPress function keys to test different \nwxTextCtrl functions.";
+ (*m_multitext) << " Appended.";
+ m_multitext->SetInsertionPoint(0);
+ m_multitext->WriteText( "Prepended. " );
+ m_multitext->AppendText( "\nPress function keys to test different \nwxTextCtrl functions." );
+
new MyTextCtrl( panel, -1, "This one is with wxTE_PROCESS_TAB style.",
wxPoint(10,120), wxSize(320,70), wxTE_MULTILINE | wxTE_PROCESS_TAB);
(void)new wxButton( panel, ID_MOVE_END_ZONE, "Text &zone", wxPoint(370, 60), wxSize(110, 30) );
(void)new wxStaticBox( panel, -1, "wx&Clipboard", wxPoint(345,110), wxSize(160,100) );
(void)new wxButton( panel, ID_COPY_TEXT, "C&opy line 1", wxPoint(375,130), wxSize(110,30) );
- (void)new wxButton( panel, ID_PASTE_TEXT, "&Paste text", wxPoint(375,170), wxSize(110,30) );
+ (new wxButton( panel, ID_PASTE_TEXT, "&Paste text", wxPoint(375,170), wxSize(110,30) ))
+ ->SetDefault();
m_notebook->AddPage( panel, "wxTextCtrl" , FALSE, Image_Text );
wxString choices2[] =
void MyPanel::OnPasteFromClipboard( wxCommandEvent &WXUNUSED(event) )
{
-#ifdef __WXGTK__
+ // We test for wxUSE_DRAG_AND_DROP also, because data objects
+ // may not be implemented for compilers that can't cope with the OLE
+ // parts in wxUSE_DRAG_AND_DROP.
+#if wxUSE_CLIPBOARD && wxUSE_DRAG_AND_DROP
if (!wxTheClipboard->Open())
{
- *m_text << "Error opening the clipboard." << "\n";
+ *m_text << "Error opening the clipboard.\n";
return;
}
else
{
- *m_text << "Successfully opened the clipboard." << "\n";
+ *m_text << "Successfully opened the clipboard.\n";
}
wxTextDataObject data;
- if (wxTheClipboard->IsSupported( data ))
+ if (wxTheClipboard->IsSupported( data.GetFormat() ))
{
- *m_text << "Clipboard supports requested format." << "\n";
+ *m_text << "Clipboard supports requested format.\n";
- if (wxTheClipboard->GetData( data ))
+ if (wxTheClipboard->GetData( &data ))
{
- *m_text << "Successfully retrieved data from the clipboard." << "\n";
+ *m_text << "Successfully retrieved data from the clipboard.\n";
*m_multitext << data.GetText() << "\n";
}
else
{
- *m_text << "Error getting data from the clipboard." << "\n";
+ *m_text << "Error getting data from the clipboard.\n";
}
}
else
{
- *m_text << "Clipboard doesn't support requested format." << "\n";
+ *m_text << "Clipboard doesn't support requested format.\n";
}
wxTheClipboard->Close();
- *m_text << "Closed the clipboard." << "\n";
-
+ *m_text << "Closed the clipboard.\n";
+#else
+ wxLogError("Your version of wxWindows is compiled without clipboard support.");
#endif
}
void MyPanel::OnCopyToClipboard( wxCommandEvent &WXUNUSED(event) )
{
-#ifdef __WXGTK__
-
+#if wxUSE_CLIPBOARD && wxUSE_DRAG_AND_DROP
wxString text( m_multitext->GetLineText(0) );
- if (text.IsEmpty()) return;
+ if (text.IsEmpty())
+ {
+ *m_text << "No text to copy.\n";
+
+ return;
+ }
if (!wxTheClipboard->Open())
{
- *m_text << "Error opening the clipboard." << "\n";
+ *m_text << "Error opening the clipboard.\n";
return;
}
else
{
- *m_text << "Successfully opened the clipboard." << "\n";
+ *m_text << "Successfully opened the clipboard.\n";
}
wxTextDataObject *data = new wxTextDataObject( text );
if (!wxTheClipboard->SetData( data ))
{
- *m_text << "Error while copying to the clipboard." << "\n";
+ *m_text << "Error while copying to the clipboard.\n";
}
else
{
- *m_text << "Successfully copied data to the clipboard." << "\n";
+ *m_text << "Successfully copied data to the clipboard.\n";
}
wxTheClipboard->Close();
- *m_text << "Closed the clipboard." << "\n";
-
+ *m_text << "Closed the clipboard.\n";
+#else
+ wxLogError("Your version of wxWindows is compiled without clipboard support.");
#endif
}
{
m_text->AppendText("Checkbox clicked.\n");
wxCheckBox *cb = (wxCheckBox*)event.GetEventObject();
+#if wxUSE_TOOLTIPS
if (event.GetInt())
cb->SetToolTip( "Click to enable listbox" );
else
cb->SetToolTip( "Click to disable listbox" );
+#endif
m_listbox->Enable( event.GetInt() == 0 );
break;
}
SetStatusText(msg);
}
-}
\ No newline at end of file
+}