]> git.saurik.com Git - wxWidgets.git/blobdiff - user/wxLayout/wxlwindow.h
(very) small changes for Windows compilation
[wxWidgets.git] / user / wxLayout / wxlwindow.h
index 61304396e329235a39bde988ea2aa16a16436ae3..0f5c60611ff474ff59debca2d3e399a9cbdb37c9 100644 (file)
 #   pragma interface "wxlwindow.h"
 #endif
 
-#include   <wx/wx.h>
+#ifndef USE_PCH
+#  include   <wx/wx.h>
+#endif
 
 #include   "wxllist.h"
 
-#define BROKEN_COMPILER
-
-#ifdef   BROKEN_COMPILER
-#   define   virtual
-#endif
-
 class wxLayoutWindow : public wxScrolledWindow
 {
 public:
+   /** Constructor.
+       @param parent parent window to display this panel in
+   */
    wxLayoutWindow(wxWindow *parent);
 
+   /* Returns a reference to the wxLayoutList object.
+      @return the list
+   */
    wxLayoutList & GetLayoutList(void) { return m_llist; }
 
    // clears the window and sets default parameters:
@@ -36,37 +38,67 @@ public:
       {
          GetLayoutList().Clear(family,size,style,weight,underline,fg,bg);
          SetBackgroundColour( *GetLayoutList().GetDefaults()->GetBGColour());
+
+         m_bDirty = FALSE;
       }
 
-   //virtual void OnDraw(wxDC &dc);
-   void OnPaint(wxPaintEvent &WXUNUSED(event));
-   virtual void OnMouse(wxMouseEvent& event);
-   virtual void OnChar(wxKeyEvent& event);
+   // callbacks
+   // NB: these functions are used as event handlers and must not be virtual
+   void OnPaint(wxPaintEvent &event);
+   
+   void OnLeftMouseClick(wxMouseEvent& event)
+      { OnMouse(WXMENU_LAYOUT_LCLICK, event); }
+   void OnRightMouseClick(wxMouseEvent& event)
+      { OnMouse(WXMENU_LAYOUT_RCLICK, event); }
+   void OnMouseDblClick(wxMouseEvent& event)
+      { OnMouse(WXMENU_LAYOUT_DBLCLICK, event); }
+
+   void OnChar(wxKeyEvent& event);
+
+   /// gets called by either Update() or OnPaint()
+   void DoPaint(wxDC &dc);
+
+#ifdef __WXMSW__
+   virtual long MSWGetDlgCode();
+#endif //MSW
+
    void UpdateScrollbars(void);
    void Print(void);
-   void Erase(void)
-      { m_llist.Clear(); Clear(); }
-   void SetEventId(int id) { m_EventId = id; }
-   wxPoint const &GetClickPosition(void) const { return
-                                                    m_ClickPosition; }
-   virtual ~wxLayoutWindow() {} ;
-private:
+
+   /// if the flag is true, we send events when user clicks on embedded objects
+   inline void SetMouseTracking(bool doIt = true) { m_doSendEvents = doIt; }
+
+   virtual ~wxLayoutWindow() { }
+
+   // dirty flag access
+   bool IsDirty() const { return m_llist.IsDirty(); }
+   void ResetDirty()    { m_llist.ResetDirty();     }
+
+   
+protected:
+   /// generic function for mouse events processing
+   void OnMouse(int eventId, wxMouseEvent& event);
+
+   /// repaint if needed
+   void Update(void);
+
    /// for sending events
    wxWindow *m_Parent;
-   int m_EventId;
+   bool m_doSendEvents;
+
    /// the layout list to be displayed
    wxLayoutList m_llist;
+
    /// have we already set the scrollbars?
    bool m_ScrollbarsSet;
-   /// if we want to find an object:
-   wxPoint m_FindPos;
-   wxLayoutObjectBase *m_FoundObject;
-   wxPoint m_ClickPosition;
+   /// Where does the current view start?
+   int m_ViewStartX; int m_ViewStartY;
+   
+   /// do we have unsaved data?
+   bool m_bDirty;
+
+private:
    DECLARE_EVENT_TABLE()
 };
 
-#ifdef   BROKEN_COMPILER
-#undef   virtual
-#endif
-
 #endif