]> git.saurik.com Git - wxWidgets.git/commitdiff
More wxWidgets in wxPoem demo code.
authorWłodzimierz Skiba <abx@abx.art.pl>
Mon, 21 Mar 2005 20:22:39 +0000 (20:22 +0000)
committerWłodzimierz Skiba <abx@abx.art.pl>
Mon, 21 Mar 2005 20:22:39 +0000 (20:22 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32964 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

demos/poem/wxpoem.cpp
demos/poem/wxpoem.h
demos/poem/wxpoem.rc

index 334027ae0b9e280c813be979ed27f6848fc6bb9e..0b05f793cca439e2c87c4d75f00ade5daaca8892 100644 (file)
 
 #include "wxpoem.h"
 
-#if defined(__WXGTK__) || defined(__WXMOTIF__) || defined(__WXMAC__) || defined(__WXX11__)
 #include "corner1.xpm"
 #include "corner2.xpm"
 #include "corner3.xpm"
 #include "corner4.xpm"
 #include "wxpoem.xpm"
-#endif
 
 #define         buf_size 10000
 #define         DEFAULT_POETRY_DAT "wxpoem"
@@ -82,16 +80,6 @@ static bool     index_ok = false;               // Index loaded ok
 static bool     paging = false;                 // Are we paging?
 static int      current_page = 0;               // Currently viewed page
 
-wxIcon          *Corner1 = NULL;
-wxIcon          *Corner2 = NULL;
-wxIcon          *Corner3 = NULL;
-wxIcon          *Corner4 = NULL;
-
-// Pens
-wxPen           *GreyPen = NULL;
-wxPen           *DarkGreyPen = NULL;
-wxPen           *WhitePen = NULL;
-
 // Backing bitmap
 wxBitmap        *backingBitmap = NULL;
 
@@ -135,8 +123,28 @@ MainWindow::MainWindow(wxFrame *frame, wxWindowID id, const wxString& title,
      const wxPoint& pos, const wxSize& size, long style):
      wxFrame(frame, id, title, pos, size, style)
 {
+    m_corners[0] = m_corners[1] = m_corners[2] = m_corners[3] = NULL;
+
     ReadPreferences();
     CreateFonts();
+
+    SetIcon(wxpoem_xpm);
+
+    m_corners[0] = new wxIcon( corner1_xpm );
+    m_corners[1] = new wxIcon( corner2_xpm );
+    m_corners[2] = new wxIcon( corner3_xpm );
+    m_corners[3] = new wxIcon( corner4_xpm );
+}
+
+MainWindow::~MainWindow()
+{
+    for (int i=0;i<4;i++)
+    {
+        if(m_corners[i])
+        {
+            delete m_corners[i];
+        }
+    }
 }
 
 // Read the poetry buffer, either for finding the size
@@ -167,7 +175,7 @@ void MainWindow::ScanBuffer(wxDC *dc, bool DrawIt, int *max_x, int *max_y)
     if (DrawIt && wxColourDisplay())
     {
         dc->SetBrush(*wxLIGHT_GREY_BRUSH);
-        dc->SetPen(*GreyPen);
+        dc->SetPen(*wxGREY_PEN);
         dc->DrawRectangle(0, 0, width, height);
         dc->SetBackgroundMode(wxTRANSPARENT);
     }
@@ -378,9 +386,9 @@ void MainWindow::ScanBuffer(wxDC *dc, bool DrawIt, int *max_x, int *max_y)
         // Right and bottom white lines - 'grey' (black!) if
         // we're running on a mono display.
         if (wxColourDisplay())
-            dc->SetPen(*WhitePen);
+            dc->SetPen(*wxWHITE_PEN);
         else
-            dc->SetPen(*DarkGreyPen);
+            dc->SetPen(*wxBLACK_PEN);
 
         dc->DrawLine(width-THICK_LINE_BORDER, THICK_LINE_BORDER,
                      width-THICK_LINE_BORDER, height-THICK_LINE_BORDER);
@@ -388,20 +396,20 @@ void MainWindow::ScanBuffer(wxDC *dc, bool DrawIt, int *max_x, int *max_y)
                      THICK_LINE_BORDER, height-THICK_LINE_BORDER);
 
         // Left and top grey lines
-        dc->SetPen(*DarkGreyPen);
+        dc->SetPen(*wxBLACK_PEN);
         dc->DrawLine(THICK_LINE_BORDER, height-THICK_LINE_BORDER,
                      THICK_LINE_BORDER, THICK_LINE_BORDER);
         dc->DrawLine(THICK_LINE_BORDER, THICK_LINE_BORDER,
                      width-THICK_LINE_BORDER, THICK_LINE_BORDER);
 
         // Draw icons
-        dc->DrawIcon(* Corner1, 0, 0);
-        dc->DrawIcon(* Corner2, int(width-32), 0);
+        dc->DrawIcon(* m_corners[0], 0, 0);
+        dc->DrawIcon(* m_corners[1], int(width-32), 0);
 
         int y2 = height - 32;
         int x2 = (width-32);
-        dc->DrawIcon(* Corner3, 0, y2);
-        dc->DrawIcon(* Corner4, x2, y2);
+        dc->DrawIcon(* m_corners[2], 0, y2);
+        dc->DrawIcon(* m_corners[3], x2, y2);
     }
 }
 
@@ -513,91 +521,64 @@ void MainWindow::Search(bool ask)
 
 bool MyApp::OnInit()
 {
-  poem_buffer = new wxChar[buf_size];
-
-  GreyPen = new wxPen(_T("LIGHT GREY"), THICK_LINE_WIDTH, wxSOLID);
-  DarkGreyPen = new wxPen(_T("GREY"), THICK_LINE_WIDTH, wxSOLID);
-  WhitePen = new wxPen(_T("WHITE"), THICK_LINE_WIDTH, wxSOLID);
+    poem_buffer = new wxChar[buf_size];
 
-  // Seed the random number generator
+    // Seed the random number generator
 #ifdef __WXWINCE__
-  srand((unsigned) CeGetRandomSeed());
+    srand((unsigned) CeGetRandomSeed());
 #else
-  time_t current_time;
+    time_t current_time;
 
-  (void)time(&current_time);
-  srand((unsigned int)current_time);
+    (void)time(&current_time);
+    srand((unsigned int)current_time);
 #endif
 
 //    randomize();
-  pages[0] = 0;
+    pages[0] = 0;
 
-  TheMainWindow = new MainWindow(NULL,
-                                 wxID_ANY,
-                                 _T("wxPoem"),
-                                 wxPoint(XPos, YPos),
-                                 wxDefaultSize,
-                                 wxCAPTION|wxMINIMIZE_BOX|wxSYSTEM_MENU|wxCLOSE_BOX|wxFULL_REPAINT_ON_RESIZE
-                                 );
+    TheMainWindow = new MainWindow(NULL,
+                                   wxID_ANY,
+                                   _T("wxPoem"),
+                                   wxPoint(XPos, YPos),
+                                   wxDefaultSize,
+                                   wxCAPTION|wxMINIMIZE_BOX|wxSYSTEM_MENU|wxCLOSE_BOX|wxFULL_REPAINT_ON_RESIZE
+                                   );
 
-  TheMainWindow->SetIcon(wxICON(wxpoem));
+    TheMainWindow->canvas = new MyCanvas(TheMainWindow);
 
-  TheMainWindow->canvas = new MyCanvas(TheMainWindow);
-
-  if (argc > 1)
-  {
-    index_filename = wxStrcpy(new wxChar[wxStrlen(argv[1]) + 1], argv[1]);
-    data_filename = wxStrcpy(new wxChar[wxStrlen(argv[1]) + 1], argv[1]);
-  }
-  else
-  {
-    index_filename = _T(DEFAULT_POETRY_IND);
-    data_filename = _T(DEFAULT_POETRY_DAT);
-  }
-  TryLoadIndex();
-
-#ifdef __WXMSW__
-  Corner1 = new wxIcon(_T("icon_1"));
-  Corner2 = new wxIcon(_T("icon_2"));
-  Corner3 = new wxIcon(_T("icon_3"));
-  Corner4 = new wxIcon(_T("icon_4"));
-#endif
-#if defined(__WXGTK__) || defined(__WXMOTIF__) || defined(__WXMAC__) || defined(__WXX11__)
-  Corner1 = new wxIcon( corner1_xpm );
-  Corner2 = new wxIcon( corner2_xpm );
-  Corner3 = new wxIcon( corner3_xpm );
-  Corner4 = new wxIcon( corner4_xpm );
-#endif
+    if (argc > 1)
+    {
+        index_filename = wxStrcpy(new wxChar[wxStrlen(argv[1]) + 1], argv[1]);
+        data_filename = wxStrcpy(new wxChar[wxStrlen(argv[1]) + 1], argv[1]);
+    }
+    else
+    {
+        index_filename = _T(DEFAULT_POETRY_IND);
+        data_filename = _T(DEFAULT_POETRY_DAT);
+    }
+    TryLoadIndex();
 
-  TheMainWindow->GetIndexLoadPoem();
-  TheMainWindow->Resize();
-  TheMainWindow->Show(true);
+    TheMainWindow->GetIndexLoadPoem();
+    TheMainWindow->Resize();
+    TheMainWindow->Show(true);
 
-  return true;
+    return true;
 }
 
 int MyApp::OnExit()
 {
-  if (backingBitmap)
-    delete backingBitmap;
-  delete GreyPen;
-  delete DarkGreyPen;
-  delete WhitePen;
-
-  delete Corner1;
-  delete Corner2;
-  delete Corner3;
-  delete Corner4;
+    if (backingBitmap)
+        delete backingBitmap;
 
-  delete[] poem_buffer;
+    delete[] poem_buffer;
 
-  return 0;
+    return 0;
 }
 
 void MainWindow::OnCloseWindow(wxCloseEvent& WXUNUSED(event))
 {
-  WritePreferences();
-  this->Destroy();
+    WritePreferences();
+    this->Destroy();
 }
 
 void MainWindow::OnChar(wxKeyEvent& event)
@@ -866,14 +847,14 @@ long MainWindow::DoSearch(void)
         return false;
 
     FILE *file;
-    long i = 0;
+    size_t i = 0;
     int ch = 0;
     wxChar buf[100];
     long find_start;
     long previous_poem_start;
 
     bool found = false;
-    int search_length = m_searchString.length();
+    size_t search_length = m_searchString.length();
 
     if (same_search)
     {
index 0b63613546bb5e7640e57dc470e82d69f86ba401..1c67f781f4f12595036324a1716ad343d64ac4ae 100644 (file)
@@ -51,6 +51,7 @@ class MainWindow: public wxFrame
 public:
     MyCanvas *canvas;
     MainWindow(wxFrame *frame, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style);
+    ~MainWindow();
 
     void OnCloseWindow(wxCloseEvent& event);
     void OnChar(wxKeyEvent& event);
@@ -90,6 +91,9 @@ private:
     wxFont *m_boldFont;
     wxFont *m_italicFont;
 
+    // Icons
+    wxIcon *m_corners[4];
+
     DECLARE_EVENT_TABLE()
 };
 
index 8fdb7de3ee040964840935466dce28bbc1313972..98bfc4ed7ca214360ffa1d552ba06eb8b6c16b82 100644 (file)
@@ -1,11 +1,4 @@
 aaaa ICON "wxpoem.ico"
-wxpoem ICON "wxpoem.ico"
-wxSTD_FRAME ICON "wxpoem.ico"
-
-icon_1 ICON "corner1.ico"
-icon_2 ICON "corner2.ico"
-icon_3 ICON "corner3.ico"
-icon_4 ICON "corner4.ico"
 
 #include "wx/msw/wx.rc"