]> git.saurik.com Git - wxWidgets.git/commitdiff
Fix to parser.y to make it compile with makefile.unx; wxFileConfig
authorJulian Smart <julian@anthemion.co.uk>
Sun, 15 Nov 1998 21:53:27 +0000 (21:53 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Sun, 15 Nov 1998 21:53:27 +0000 (21:53 +0000)
adds a / to user path if necessary; OGL sample cleans itself up;
wxLog fixes in app.cpp

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1002 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

14 files changed:
docs/motif/todo.txt
include/wx/motif/mdi.h
include/wx/motif/setup.h
src/common/fileconf.cpp
src/common/parser.y
src/common/timercmn.cpp
src/makeprog.env
src/motif/app.cpp
src/motif/makefile.unx
src/motif/window.cpp
src/msw/app.cpp
src/msw/utils.cpp
utils/ogl/samples/ogledit/ogledit.cpp
utils/ogl/samples/ogledit/ogledit.h

index e717d2aa195488c3375a7bd5159193b6ef07b184..1043abd94ccab518335776b818b75d0772ea17c7 100644 (file)
@@ -53,6 +53,16 @@ High Priority
 
 - wxGrid: scrollbars don't hide; problem with cell selection.
 
 
 - wxGrid: scrollbars don't hide; problem with cell selection.
 
+- MDI: seems to be broken for a more complex application I'm testing.
+  Frame decorations don't draw properly, and a child window doesn't
+  process events properly. So probably we should have an alternative
+  implementation that uses tabs, a la wxGTK. The system menu could
+  be implemented using a pop-up menu that applies to the currently
+  active window.
+
+- Controls in a wxToolBar don't work. Probably due to form layout
+  problems; the workaround is to use a separate panel for controls.
+
 - Miscellaneous events.
 
 - Write makefiles for all samples and utilities.
 - Miscellaneous events.
 
 - Write makefiles for all samples and utilities.
index bcffddeb6bd316fb6867d76f6244958da7c63998..b843dc4e605a499a898e5859c96f392d4dacecfd 100644 (file)
@@ -1,8 +1,6 @@
 /////////////////////////////////////////////////////////////////////////////
 // Name:        mdi.h
 // Purpose:     MDI (Multiple Document Interface) classes.
 /////////////////////////////////////////////////////////////////////////////
 // Name:        mdi.h
 // Purpose:     MDI (Multiple Document Interface) classes.
-//              This doesn't have to be implemented just like Windows,
-//              it could be a tabbed design as in wxGTK.
 // Author:      Julian Smart
 // Modified by:
 // Created:     17/09/98
 // Author:      Julian Smart
 // Modified by:
 // Created:     17/09/98
@@ -26,8 +24,10 @@ WXDLLEXPORT_DATA(extern const char*) wxStatusLineNameStr;
 class WXDLLEXPORT wxMDIClientWindow;
 class WXDLLEXPORT wxMDIChildFrame;
 
 class WXDLLEXPORT wxMDIClientWindow;
 class WXDLLEXPORT wxMDIChildFrame;
 
+#if wxUSE_MDI_WIDGETS
 class XsMDICanvas;
 class wxXsMDIWindow;
 class XsMDICanvas;
 class wxXsMDIWindow;
+#endif
 
 class WXDLLEXPORT wxMDIParentFrame: public wxFrame
 {
 
 class WXDLLEXPORT wxMDIParentFrame: public wxFrame
 {
@@ -147,7 +147,9 @@ public:
   bool Show(bool show);
   void BuildClientArea(WXWidget parent);
   inline WXWidget GetTopWidget() const { return m_mainWidget; };
   bool Show(bool show);
   void BuildClientArea(WXWidget parent);
   inline WXWidget GetTopWidget() const { return m_mainWidget; };
+#if wxUSE_MDI_WIDGETS
   inline wxXsMDIWindow *GetMDIWindow() const { return m_mdiWindow; };
   inline wxXsMDIWindow *GetMDIWindow() const { return m_mdiWindow; };
+#endif
   virtual void OnRaise();
   virtual void OnLower();
 
   virtual void OnRaise();
   virtual void OnLower();
 
@@ -189,14 +191,17 @@ class WXDLLEXPORT wxMDIClientWindow: public wxWindow
   // Explicitly call default scroll behaviour
   void OnScroll(wxScrollEvent& event);
 
   // Explicitly call default scroll behaviour
   void OnScroll(wxScrollEvent& event);
 
+#if wxUSE_MDI_WIDGETS
   inline XsMDICanvas* GetMDICanvas() const { return m_mdiCanvas; }
   inline XsMDICanvas* GetMDICanvas() const { return m_mdiCanvas; }
-
   WXWidget GetTopWidget() const { return m_topWidget; }
   WXWidget GetTopWidget() const { return m_topWidget; }
+#endif
 
 protected:
 
 
 protected:
 
+#if wxUSE_MDI_WIDGETS
   XsMDICanvas*   m_mdiCanvas;
   WXWidget       m_topWidget;
   XsMDICanvas*   m_mdiCanvas;
   WXWidget       m_topWidget;
+#endif
 
 DECLARE_EVENT_TABLE()
 };
 
 DECLARE_EVENT_TABLE()
 };
index b69937aca08891b354ef38e7f19854a49115c068..8b9f9762e54ce46a7fdd77b8a1f1fe53856298b8 100644 (file)
 #define wxUSE_GADGETS       0
                                   // Use gadgets where possible
 
 #define wxUSE_GADGETS       0
                                   // Use gadgets where possible
 
+#define wxUSE_MDI_WIDGETS   1
+                                  // Use Scott Sadler's MDI widgets (buggy).
+                                  // If 0, uses normal frames.
+                 
+
 /*
  * Finer detail
  *
 /*
  * Finer detail
  *
index cb7ca2fa106b25d321e936f226124d9763502d58..873515cc508e25bace48e3446731b6d3ab862651 100644 (file)
@@ -114,6 +114,9 @@ wxString wxFileConfig::GetLocalDir()
   
   wxGetHomeDir(&strDir);
 
   
   wxGetHomeDir(&strDir);
 
+  if (strDir.Last() != '/' && strDir.Last() != '\\')
+    strDir += "/";
+
   return strDir;
 }
 
   return strDir;
 }
 
index 243a49feb71dc50d8e5317b21852a849878f074b..3973c3948c6b6dd98ffa9f2188e536137025d330 100644 (file)
@@ -124,7 +124,7 @@ arg1        :       WORD
 
 %%
 
 
 %%
 
-#if defined(__WXGTK__) || defined(__WXMOTIF__)
+#if (defined(__WXGTK__) || defined(__WXMOTIF__)) && !defined(NO_CONFIGURE)
 #include "lexer.c"
 #else
 #include "../common/lex_yy.c"
 #include "lexer.c"
 #else
 #include "../common/lex_yy.c"
index f25a81740926454c68a5a3b70b263708965a5406..93e8beb8cc409d2e8248563307281dfbd3f828a5 100644 (file)
@@ -70,7 +70,7 @@ void wxStartTimer(void)
 {
 #if defined(__xlC__) || defined(__AIX__) || defined(__SVR4__) || defined(__SYSV__) || (defined(__GNUWIN32__) && !defined(__MINGW32__)) // || defined(__AIXV3__)
   struct timeval tp;
 {
 #if defined(__xlC__) || defined(__AIX__) || defined(__SVR4__) || defined(__SYSV__) || (defined(__GNUWIN32__) && !defined(__MINGW32__)) // || defined(__AIXV3__)
   struct timeval tp;
-#ifdef __SYSV__
+#if defined(__SYSV__) || (defined (__GNUWIN32__) && !defined (__MINGW32__))
   gettimeofday(&tp, (struct timezone *)NULL);
 #else
   gettimeofday(&tp);
   gettimeofday(&tp, (struct timezone *)NULL);
 #else
   gettimeofday(&tp);
@@ -94,7 +94,7 @@ long wxGetElapsedTime(bool resetTimer)
 {
 #if defined(__xlC__) || defined(__AIX__) || defined(__SVR4__) || defined(__SYSV__) || (defined(__GNUWIN32__) && !defined(__MINGW32__)) // || defined(__AIXV3__)
   struct timeval tp;
 {
 #if defined(__xlC__) || defined(__AIX__) || defined(__SVR4__) || defined(__SYSV__) || (defined(__GNUWIN32__) && !defined(__MINGW32__)) // || defined(__AIXV3__)
   struct timeval tp;
-#ifdef __SYSV__
+#if defined(__SYSV__) || (defined (__GNUWIN32__) && !defined (__MINGW32__))
   gettimeofday(&tp, (struct timezone *)NULL);
 #else
   gettimeofday(&tp);
   gettimeofday(&tp, (struct timezone *)NULL);
 #else
   gettimeofday(&tp);
@@ -190,7 +190,7 @@ long wxGetCurrentTime(void)
 {
 #if defined(__xlC__) || defined(__AIX__) || defined(__SVR4__) || defined(__SYSV__) // || defined(__AIXV3__)
   struct timeval tp;
 {
 #if defined(__xlC__) || defined(__AIX__) || defined(__SVR4__) || defined(__SYSV__) // || defined(__AIXV3__)
   struct timeval tp;
-#ifdef __SYSV__
+#if defined(__SYSV__) || (defined (__GNUWIN32__) && !defined (__MINGW32__))
   gettimeofday(&tp, (struct timezone *)NULL);
 #else
   gettimeofday(&tp);
   gettimeofday(&tp, (struct timezone *)NULL);
 #else
   gettimeofday(&tp);
index 8a1ee6de2b455a036eaecb1fa46afd589a5f4b5b..8f3c8ad37149c2bc622ebb155bf42978b35762e8 100644 (file)
@@ -8,4 +8,4 @@ $(PROGRAM)$(GUISUFFIX): $(OBJECTS) $(WXLIB)
        $(CC) $(LDFLAGS) -o $(PROGRAM)$(GUISUFFIX) $(OBJECTS) $(LDLIBS)
 
 clean:
        $(CC) $(LDFLAGS) -o $(PROGRAM)$(GUISUFFIX) $(OBJECTS) $(LDLIBS)
 
 clean:
-       rm -f $(OBJECTS) minimal$(GUISUFFIX) core
+       rm -f $(OBJECTS) $(PROGRAM)$(GUISUFFIX) core
index 8c006f4e9a97a6bb9f72bb9227ebe739482a6ea5..79e667aa01ffbf186c9b2e705b4b5d98f1a07161 100644 (file)
@@ -197,6 +197,14 @@ int wxEntry( int argc, char *argv[] )
   
     if (wxTheApp->Initialized()) retValue = wxTheApp->OnRun();
 
   
     if (wxTheApp->Initialized()) retValue = wxTheApp->OnRun();
 
+    // flush the logged messages if any
+    wxLog *pLog = wxLog::GetActiveTarget();
+    if ( pLog != NULL && pLog->HasPendingMessages() )
+      pLog->Flush();
+
+    delete wxLog::SetActiveTarget(new wxLogStderr); // So dialog boxes aren't used
+                                   // for further messages
+
     if (wxTheApp->GetTopWindow())
     {
       delete wxTheApp->GetTopWindow();
     if (wxTheApp->GetTopWindow())
     {
       delete wxTheApp->GetTopWindow();
@@ -206,6 +214,7 @@ int wxEntry( int argc, char *argv[] )
     wxTheApp->DeletePendingObjects();
   
     wxTheApp->OnExit();
     wxTheApp->DeletePendingObjects();
   
     wxTheApp->OnExit();
+
   
     wxApp::CleanUp();
 
   
     wxApp::CleanUp();
 
@@ -294,7 +303,7 @@ void wxApp::ProcessXEvent(WXEvent* _event)
 {
     XEvent* event = (XEvent*) _event;
 
 {
     XEvent* event = (XEvent*) _event;
 
-    if (CheckForAccelerator(_event))
+    if ((event->type == KeyPress) && CheckForAccelerator(_event))
     {
         // Do nothing! We intercepted and processed the event as an accelerator.
         return;
     {
         // Do nothing! We intercepted and processed the event as an accelerator.
         return;
index 05383b11ed031956bb8fc69ea6c2f2b855c8e957..066a208ce4f150f865c312b20bcc4db618e6ee62 100644 (file)
@@ -198,7 +198,7 @@ $(WXLIB) : $(OBJECTS)
        $(RANLIB) $@
 
 ../common/y_tab.$(OBJSUFF):    ../common/y_tab.c ../common/lex_yy.c
        $(RANLIB) $@
 
 ../common/y_tab.$(OBJSUFF):    ../common/y_tab.c ../common/lex_yy.c
-       $(CCLEX) -c $(CFLAGS) -o $@ ../common/y_tab.c
+       $(CCLEX) -c $(CFLAGS) -DNO_CONFIGURE -o $@ ../common/y_tab.c
 
 # Replace lex with flex if you run into compilation
 # problems with lex_yy.c. See also note about LEX_SCANNER
 
 # Replace lex with flex if you run into compilation
 # problems with lex_yy.c. See also note about LEX_SCANNER
index dc47a226d6a8d78db4a1020e03e8cd4188417782..618603b72131557bb5b7b0baf8f2f48c3f9d584e 100644 (file)
@@ -2217,6 +2217,30 @@ void wxCanvasInputEvent (Widget drawingArea, XtPointer data, XmDrawingAreaCallba
 
   local_event = *(cbs->event); // We must keep a copy!
 
 
   local_event = *(cbs->event); // We must keep a copy!
 
+  /*
+  switch (local_event.xany.type)
+    {
+    case EnterNotify:
+      cout << "EnterNotify\n";
+      break;
+    case LeaveNotify:
+      cout << "LeaveNotify\n";
+      break;
+    case ButtonPress:
+      cout << "ButtonPress\n";
+      break;
+    case ButtonRelease:
+      cout << "ButtonRelease\n";
+      break;
+    case MotionNotify:
+      cout << "MotionNotify\n";
+      break;
+    default:
+      cout << "Something else\n";
+      break;
+  }
+  */
+
   switch (local_event.xany.type)
     {
     case EnterNotify:
   switch (local_event.xany.type)
     {
     case EnterNotify:
index e67b404eedf13f1ab3ae4c177a9a8c859234ffea..a38890a323e70ba7b64e5a14b7182d21bbe9ffb8 100644 (file)
@@ -568,6 +568,13 @@ int wxEntry(WXHINSTANCE hInstance,
   }
 
   wxTheApp->OnExit();
   }
 
   wxTheApp->OnExit();
+
+  // flush the logged messages if any
+  wxLog *pLog = wxLog::GetActiveTarget();
+  if ( pLog != NULL && pLog->HasPendingMessages() )
+    pLog->Flush();
+
+
   wxApp::CleanUp();
 
   delete wxTheApp;
   wxApp::CleanUp();
 
   delete wxTheApp;
index 447b3be632aa552b86e5e901bf07d5a710e6c25a..907a17eeea2d0265e193e4bd6ff63ad569ed2a17 100644 (file)
 #ifdef __GNUWIN32__
 #include <sys/unistd.h>
 #include <sys/stat.h>
 #ifdef __GNUWIN32__
 #include <sys/unistd.h>
 #include <sys/stat.h>
-#ifndef __MINGW32__
-#include <std.h>
-#endif  //MINGW32
-
 #endif  //GNUWIN32
 
 #include "wx/log.h"
 #endif  //GNUWIN32
 
 #include "wx/log.h"
index c10fa51ee02758c983fbdba9770358472625a7f0..f58c265293e66cbae496ec23697fa12cc7902ed7 100644 (file)
@@ -44,6 +44,7 @@ IMPLEMENT_APP(MyApp)
 MyApp::MyApp(void)
 {
   frame = NULL;
 MyApp::MyApp(void)
 {
   frame = NULL;
+  myDocManager= NULL;
 }
 
 // The `main program' equivalent, creating the windows and returning the
 }
 
 // The `main program' equivalent, creating the windows and returning the
@@ -53,7 +54,7 @@ bool MyApp::OnInit(void)
   wxOGLInitialize();
   
   //// Create a document manager
   wxOGLInitialize();
   
   //// Create a document manager
-  wxDocManager *myDocManager = new wxDocManager;
+  myDocManager = new wxDocManager;
 
   //// Create a template relating drawing documents to their views
   (void) new wxDocTemplate(myDocManager, "Diagram", "*.dia", "", "dia", "Diagram Doc", "Diagram View",
 
   //// Create a template relating drawing documents to their views
   (void) new wxDocTemplate(myDocManager, "Diagram", "*.dia", "", "dia", "Diagram Doc", "Diagram View",
@@ -126,6 +127,13 @@ bool MyApp::OnInit(void)
   return TRUE;
 }
 
   return TRUE;
 }
 
+int MyApp::OnExit(void)
+{
+    wxOGLCleanUp();
+    delete myDocManager;
+    return 0;
+}
+
 /*
  * This is the top-level window of the application.
  */
 /*
  * This is the top-level window of the application.
  */
@@ -191,8 +199,7 @@ MyCanvas *MyFrame::CreateCanvas(wxView *view, wxFrame *parent)
 
   // Non-retained canvas
   MyCanvas *canvas = new MyCanvas(view, parent, -1, wxPoint(0, 0), wxSize(width, height), 0);
 
   // Non-retained canvas
   MyCanvas *canvas = new MyCanvas(view, parent, -1, wxPoint(0, 0), wxSize(width, height), 0);
-  wxCursor *cursor = new wxCursor(wxCURSOR_HAND);
-  canvas->SetCursor(cursor);
+  canvas->SetCursor(wxCursor(wxCURSOR_HAND));
 
   // Give it scrollbars
   canvas->SetScrollbars(20, 20, 50, 50);
 
   // Give it scrollbars
   canvas->SetScrollbars(20, 20, 50, 50);
index c44195b6a7ce8736939efe5331806795a00700fe..3f0408c9497930d0ed0d81f5a9264cb336e8eeab 100644 (file)
@@ -25,9 +25,11 @@ class MyApp: public wxApp
 {
  public:
   MyFrame *frame;
 {
  public:
   MyFrame *frame;
+  wxDocManager* myDocManager;
 
   MyApp(void);
   bool OnInit(void);
 
   MyApp(void);
   bool OnInit(void);
+  int OnExit(void);
 
   // Palette stuff
   EditorToolPalette *CreatePalette(wxFrame *parent);
 
   // Palette stuff
   EditorToolPalette *CreatePalette(wxFrame *parent);