]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/wxpoem/wxpoem.cpp
Added the forgotten file txtstrm.tex
[wxWidgets.git] / samples / wxpoem / wxpoem.cpp
index dea7b5ac0f73e2c83e6f696c1e3d51eff2853862..4890c8f92aa5a213f61189e0ff6aaadb03723fe4 100644 (file)
@@ -26,9 +26,7 @@
 #endif
 
 #ifndef WX_PRECOMP
 #endif
 
 #ifndef WX_PRECOMP
-#include "wx/defs.h"
-#include "wx/list.h"
-#include "wx/utils.h"
+#include "wx/wx.h"
 #endif
 
 #include "wx/help.h"
 #endif
 
 #include "wx/help.h"
 #include <string.h>
 #include <time.h>
 
 #include <string.h>
 #include <time.h>
 
+#ifdef __WINDOWS__
+#include <windows.h>
+#ifdef DrawText
+#undef DrawText
+#endif
+#endif
+
 #define         buf_size 10000
 #define         DEFAULT_POETRY_DAT "wxpoem"
 #define         DEFAULT_POETRY_IND "wxpoem"
 #define         buf_size 10000
 #define         DEFAULT_POETRY_DAT "wxpoem"
 #define         DEFAULT_POETRY_IND "wxpoem"
@@ -76,8 +81,6 @@ static bool     same_search = FALSE;            // Searching on same string
 
 static long     poem_index[600];                     // Index of poem starts
 static long     nitems = 0;                     // Number of poems
 
 static long     poem_index[600];                     // Index of poem starts
 static long     nitems = 0;                     // Number of poems
-static int      desired_char_height = DEFAULT_CHAR_HEIGHT; // Desired height
-static char     DesiredFont[64];                // Chosen font
 static int      char_height = DEFAULT_CHAR_HEIGHT; // Actual height
 static int      index_ptr = -1;                 // Pointer into index
 static int      poem_height, poem_width;        // Size of poem
 static int      char_height = DEFAULT_CHAR_HEIGHT; // Actual height
 static int      index_ptr = -1;                 // Pointer into index
 static int      poem_height, poem_width;        // Size of poem
@@ -130,11 +133,9 @@ void            CopyToClipboard(HWND, char *);
 wxMenu    *popupMenu = NULL;
 void PopupFunction(wxMenu& menu, wxCommandEvent& event);
 
 wxMenu    *popupMenu = NULL;
 void PopupFunction(wxMenu& menu, wxCommandEvent& event);
 
-wxHelpController *HelpController = NULL;
-
-// A macro needed for some compilers (AIX) that need 'main' to be defined
-// in the application itself.
-IMPLEMENT_WXWIN_MAIN
+#if wxUSE_HELP
+    wxHelpController *HelpController = NULL;
+#endif // wxUSE_HELP
 
 IMPLEMENT_APP(MyApp)
 
 
 IMPLEMENT_APP(MyApp)
 
@@ -331,7 +332,7 @@ void MainWindow::ScanBuffer(wxDC *dc, bool DrawIt, int *max_x, int *max_y)
 
               dc->GetTextExtent(line, &xx, &yy);
               FindMax(&curr_width, (int)xx);
 
               dc->GetTextExtent(line, &xx, &yy);
               FindMax(&curr_width, (int)xx);
-    
+
               if (DrawIt)
               {
                 int x = (int)((width - xx)/2.0);
               if (DrawIt)
               {
                 int x = (int)((width - xx)/2.0);
@@ -400,7 +401,7 @@ void MainWindow::ScanBuffer(wxDC *dc, bool DrawIt, int *max_x, int *max_y)
       dc->DrawLine(width-THIN_LINE_BORDER, THIN_LINE_BORDER, width-THIN_LINE_BORDER, height-THIN_LINE_BORDER);
       dc->DrawLine(width-THIN_LINE_BORDER, height-THIN_LINE_BORDER, THIN_LINE_BORDER, height-THIN_LINE_BORDER);
       dc->DrawLine(THIN_LINE_BORDER, height-THIN_LINE_BORDER, THIN_LINE_BORDER, THIN_LINE_BORDER);
       dc->DrawLine(width-THIN_LINE_BORDER, THIN_LINE_BORDER, width-THIN_LINE_BORDER, height-THIN_LINE_BORDER);
       dc->DrawLine(width-THIN_LINE_BORDER, height-THIN_LINE_BORDER, THIN_LINE_BORDER, height-THIN_LINE_BORDER);
       dc->DrawLine(THIN_LINE_BORDER, height-THIN_LINE_BORDER, THIN_LINE_BORDER, THIN_LINE_BORDER);
-  
+
       // Right and bottom white lines - 'grey' (black!) if
       // we're running on a mono display.
       if (wxColourDisplay())
       // Right and bottom white lines - 'grey' (black!) if
       // we're running on a mono display.
       if (wxColourDisplay())
@@ -584,13 +585,15 @@ void CopyToClipboard(HWND handle, char *s)
 bool MyApp::OnInit()
 {
   poem_buffer = new char[buf_size];
 bool MyApp::OnInit()
 {
   poem_buffer = new char[buf_size];
-  
+
   GreyPen = new wxPen("LIGHT GREY", THICK_LINE_WIDTH, wxSOLID);
   DarkGreyPen = new wxPen("GREY", THICK_LINE_WIDTH, wxSOLID);
   WhitePen = new wxPen("WHITE", THICK_LINE_WIDTH, wxSOLID);
 
   GreyPen = new wxPen("LIGHT GREY", THICK_LINE_WIDTH, wxSOLID);
   DarkGreyPen = new wxPen("GREY", THICK_LINE_WIDTH, wxSOLID);
   WhitePen = new wxPen("WHITE", THICK_LINE_WIDTH, wxSOLID);
 
+#if wxUSE_HELP
   HelpController = new wxHelpController();
   HelpController->Initialize("wxpoem");
   HelpController = new wxHelpController();
   HelpController->Initialize("wxpoem");
+#endif // wxUSE_HELP
 
   CreateFonts();
 
 
   CreateFonts();
 
@@ -605,13 +608,13 @@ bool MyApp::OnInit()
 //    randomize();
   pages[0] = 0;
 
 //    randomize();
   pages[0] = 0;
 
-  TheMainWindow = new MainWindow(NULL, -1, "wxPoem", wxPoint(XPos, YPos), wxSize(100, 100), wxCAPTION|wxMINIMIZE_BOX|wxSYSTEM_MENU);
+  TheMainWindow = new MainWindow(NULL, 500, "wxPoem", wxPoint(XPos, YPos), wxSize(100, 100), wxCAPTION|wxMINIMIZE_BOX|wxSYSTEM_MENU);
 
 #ifdef wx_x
   TheMainWindow->SetIcon(Icon("wxpoem"));
 #endif
 
 
 #ifdef wx_x
   TheMainWindow->SetIcon(Icon("wxpoem"));
 #endif
 
-  TheMainWindow->canvas = new MyCanvas(TheMainWindow, -1, wxDefaultPosition, wxDefaultSize);
+  TheMainWindow->canvas = new MyCanvas(TheMainWindow, 501, wxDefaultPosition, wxDefaultSize);
 
   popupMenu = new wxMenu("", (wxFunction)PopupFunction);
   popupMenu->Append(POEM_NEXT, "Next poem/page");
 
   popupMenu = new wxMenu("", (wxFunction)PopupFunction);
   popupMenu->Append(POEM_NEXT, "Next poem/page");
@@ -665,7 +668,9 @@ int MyApp::OnExit()
 {
   if (backingBitmap)
     delete backingBitmap;
 {
   if (backingBitmap)
     delete backingBitmap;
+#if wxUSE_HELP
   delete HelpController;
   delete HelpController;
+#endif // wxUSE_HELP
   delete GreyPen;
   delete DarkGreyPen;
   delete WhitePen;
   delete GreyPen;
   delete DarkGreyPen;
   delete WhitePen;
@@ -694,7 +699,7 @@ void MainWindow::OnChar(wxKeyEvent& event)
     canvas->OnChar(event);
 }
 
     canvas->OnChar(event);
 }
 
-BEGIN_EVENT_TABLE(MyCanvas, wxPanel)
+BEGIN_EVENT_TABLE(MyCanvas, wxWindow)
     EVT_MOUSE_EVENTS(MyCanvas::OnMouseEvent)
     EVT_CHAR(MyCanvas::OnChar)
     EVT_PAINT(MyCanvas::OnPaint)
     EVT_MOUSE_EVENTS(MyCanvas::OnMouseEvent)
     EVT_CHAR(MyCanvas::OnChar)
     EVT_PAINT(MyCanvas::OnPaint)
@@ -702,7 +707,7 @@ END_EVENT_TABLE()
 
 // Define a constructor for my canvas
 MyCanvas::MyCanvas(wxFrame *frame, wxWindowID id, const wxPoint& pos, const wxSize& size):
 
 // Define a constructor for my canvas
 MyCanvas::MyCanvas(wxFrame *frame, wxWindowID id, const wxPoint& pos, const wxSize& size):
- wxPanel(frame, id, pos, size)
+ wxWindow(frame, id, pos, size)
 {
 }
 
 {
 }
 
@@ -715,7 +720,7 @@ void MyCanvas::OnPaint(wxPaintEvent& WXUNUSED(event))
     {
         int xx, yy;
         TheMainWindow->GetClientSize(&xx, &yy);
     {
         int xx, yy;
         TheMainWindow->GetClientSize(&xx, &yy);
-    
+
         wxMemoryDC memDC;
         memDC.SelectObject(* backingBitmap);
         dc.Blit(0, 0, backingBitmap->GetWidth(), backingBitmap->GetHeight(), &memDC, 0, 0);
         wxMemoryDC memDC;
         memDC.SelectObject(* backingBitmap);
         dc.Blit(0, 0, backingBitmap->GetWidth(), backingBitmap->GetHeight(), &memDC, 0, 0);
@@ -724,7 +729,7 @@ void MyCanvas::OnPaint(wxPaintEvent& WXUNUSED(event))
 
 void MyCanvas::OnMouseEvent(wxMouseEvent& event)
 {
 
 void MyCanvas::OnMouseEvent(wxMouseEvent& event)
 {
-  float x, y;
+  long x, y;
   event.Position(&x, &y);
   static int startPosX, startPosY, startFrameX, startFrameY;
 
   event.Position(&x, &y);
   static int startPosX, startPosY, startFrameX, startFrameY;
 
@@ -733,11 +738,7 @@ void MyCanvas::OnMouseEvent(wxMouseEvent& event)
   if (event.RightDown())
   {
     // Versions from wxWin 1.67 are probably OK
   if (event.RightDown())
   {
     // Versions from wxWin 1.67 are probably OK
-#if 0 // wx_motif
-    FakePopupMenu(popupMenu, x, y);
-#else
     PopupMenu(popupMenu, (int)x, (int)y );
     PopupMenu(popupMenu, (int)x, (int)y );
-#endif
   }
   else if (event.LeftDown())
   {
   }
   else if (event.LeftDown())
   {
@@ -756,7 +757,7 @@ void MyCanvas::OnMouseEvent(wxMouseEvent& event)
     int x1 = (int)x;
     int y1 = (int)y;
     ClientToScreen(&x1, &y1);
     int x1 = (int)x;
     int y1 = (int)y;
     ClientToScreen(&x1, &y1);
-    
+
     int dX = x1 - startPosX;
     int dY = y1 - startPosY;
     GetParent()->Move(startFrameX + dX, startFrameY + dY);
     int dX = x1 - startPosX;
     int dY = y1 - startPosY;
     GetParent()->Move(startFrameX + dX, startFrameY + dY);
@@ -1067,7 +1068,7 @@ bool Compile(void)
     fprintf(file, "%ld\n\n", nitems);
     for (j = 0; j < nitems; j++)
       fprintf(file, "%ld\n", poem_index[j]);
     fprintf(file, "%ld\n\n", nitems);
     for (j = 0; j < nitems; j++)
       fprintf(file, "%ld\n", poem_index[j]);
+
     fclose(file);
     PoetryNotify("Poetry index compiled.");
     return TRUE;
     fclose(file);
     PoetryNotify("Poetry index compiled.");
     return TRUE;
@@ -1125,8 +1126,10 @@ void PopupFunction(wxMenu& /*menu*/, wxCommandEvent& event)
      }
      case POEM_HELP_CONTENTS:
      {
      }
      case POEM_HELP_CONTENTS:
      {
+#if wxUSE_HELP
        HelpController->LoadFile("wxpoem");
        HelpController->DisplayContents();
        HelpController->LoadFile("wxpoem");
        HelpController->DisplayContents();
+#endif // wxUSE_HELP
        break;
      }
      case POEM_ABOUT:
        break;
      }
      case POEM_ABOUT: