]> git.saurik.com Git - wxWidgets.git/blobdiff - contrib/utils/wxrcedit/preview.cpp
Elliptic arc fix for getting bounds
[wxWidgets.git] / contrib / utils / wxrcedit / preview.cpp
index b939a4314eef5ba340589d3c3ece515ab508ba13..d38b79589a63bb7065610528a38d57df03f93693 100644 (file)
@@ -18,7 +18,7 @@
 #endif
 
 #include "wx/wx.h"
-#include "wx/xrc/xml.h"
+#include "wx/xml/xml.h"
 #include "wx/xrc/xmlres.h"
 #include "wx/config.h"
 #include "wx/log.h"
@@ -36,11 +36,11 @@ class MyMenubarHandler : public wxMenuBarXmlHandler
 
         wxObject *DoCreateResource()
         {
-            //wxMenuBar *menubar = new wxMenuBar(GetStyle());            
+            //wxMenuBar *menubar = new wxMenuBar(GetStyle());
             CreateChildren(m_MenuBar);
             return m_MenuBar;
         }
-        
+
     private:
         wxMenuBar *m_MenuBar;
 };
@@ -52,45 +52,51 @@ PreviewFrame* PreviewFrame::ms_Instance = NULL;
 
 PreviewFrame *PreviewFrame::Get()
 {
-    if (ms_Instance == NULL) 
+    if (ms_Instance == NULL)
     {
         (void)new PreviewFrame;
-        ms_Instance->Show(TRUE);
+        ms_Instance->Show(true);
     }
     return ms_Instance;
 }
 
 PreviewFrame::PreviewFrame()
-    : wxFrame(EditorFrame::Get(), -1, _("Preview"),
-              wxDefaultPosition, wxDefaultSize, 
+    : wxFrame(EditorFrame::Get(), wxID_ANY, _("Preview"),
+              wxDefaultPosition, wxDefaultSize,
               wxDEFAULT_FRAME_STYLE | wxFRAME_NO_TASKBAR
 #ifdef __WXMSW__
               | wxFRAME_TOOL_WINDOW
 #endif
               )
 {
-    m_Dirty = FALSE;
+    m_Dirty = false;
     ms_Instance = this;
     m_Node = NULL;
-    
+
     SetMenuBar(new wxMenuBar());
-    
+
     m_RC = NULL;
     m_TmpFile = wxGetTempFileName(_T("wxrcedit"));
     ResetResource();
 
     wxConfigBase *cfg = wxConfigBase::Get();
-    SetSize(wxRect(wxPoint(cfg->Read(_T("previewframe_x"), -1), cfg->Read(_T("previewframe_y"), -1)),
+    SetSize(wxRect(wxPoint(cfg->Read(_T("previewframe_x"), wxDefaultCoord), cfg->Read(_T("previewframe_y"), wxDefaultCoord)),
             wxSize(cfg->Read(_T("previewframe_w"), 400), cfg->Read(_T("previewframe_h"), 400))));
 
-    m_Splitter = new wxSplitterWindow(this, -1);
-    m_LogCtrl = new wxTextCtrl(m_Splitter, -1, wxEmptyString, wxDefaultPosition, 
+    m_Splitter = new wxSplitterWindow(this, wxID_ANY);
+#if wxUSE_LOG
+    m_LogCtrl = new wxTextCtrl(m_Splitter, wxID_ANY, wxEmptyString, wxDefaultPosition,
                                wxDefaultSize, wxTE_MULTILINE);
-    m_ScrollWin = new wxScrolledWindow(m_Splitter, -1);
+#endif // wxUSE_LOG
+    m_ScrollWin = new wxScrolledWindow(m_Splitter, wxID_ANY);
     m_ScrollWin->SetBackgroundColour(_T("light steel blue"));
+#if wxUSE_LOG
     m_Splitter->SplitHorizontally(m_ScrollWin, m_LogCtrl, cfg->Read(_T("previewframe_sash"), 300));
+#endif // wxUSE_LOG
 
+#if wxUSE_STATUSBAR
     CreateStatusBar();
+#endif // wxUSE_STATUSBAR
 
 #ifdef __WXMSW__
     SendSizeEvent(); // force resize for WXMSW
@@ -113,29 +119,30 @@ void PreviewFrame::ResetResource()
 
 PreviewFrame::~PreviewFrame()
 {
-    wxConfigBase *cfg = wxConfigBase::Get();  
+    wxConfigBase *cfg = wxConfigBase::Get();
     cfg->Write(_T("previewframe_x"), (long)GetPosition().x);
     cfg->Write(_T("previewframe_y"), (long)GetPosition().y);
     cfg->Write(_T("previewframe_w"), (long)GetSize().x);
     cfg->Write(_T("previewframe_h"), (long)GetSize().y);
     cfg->Write(_T("previewframe_sash"), (long)m_Splitter->GetSashPosition());
-    
+
     ms_Instance = NULL;
-    
+
     delete m_RC;
     wxRemoveFile(m_TmpFile);
 }
 
 
-        
+
 void PreviewFrame::MakeDirty()
 {
     if (m_Node == NULL) return;
     if (m_Dirty) return;
-    m_Dirty = TRUE;
+    m_Dirty = true;
+#if wxUSE_LOG
     m_LogCtrl->Clear();
-    m_LogCtrl->SetValue(_("Resource modified.\n"
-                   "Move mouse cursor over the preview window to refresh it."));
+    m_LogCtrl->SetValue(_("Resource modified.\nMove mouse cursor over the preview window to refresh it."));
+#endif // wxUSE_LOG
 }
 
 
@@ -154,11 +161,11 @@ void PreviewFrame::Preview(wxXmlNode *node, wxXmlDocument *orig_doc)
        doc.GetRoot()->AddChild(new wxXmlNode(*node));
        doc.SetFileEncoding(orig_doc->GetFileEncoding());
 
-       if (XmlGetClass(doc.GetRoot()->GetChildren()) == _T("wxDialog")) 
-           XmlSetClass(doc.GetRoot()->GetChildren(), _T("wxPanel"));   
+       if (XmlGetClass(doc.GetRoot()->GetChildren()) == _T("wxDialog"))
+           XmlSetClass(doc.GetRoot()->GetChildren(), _T("wxPanel"));
 
-       if (XmlGetClass(doc.GetRoot()->GetChildren()) == _T("wxFrame")) 
-           XmlSetClass(doc.GetRoot()->GetChildren(), _T("wxPanel"));  
+       if (XmlGetClass(doc.GetRoot()->GetChildren()) == _T("wxFrame"))
+           XmlSetClass(doc.GetRoot()->GetChildren(), _T("wxPanel"));
 
        doc.Save(m_TmpFile);
        // wxXmlResource will detect change automatically
@@ -176,13 +183,15 @@ void PreviewFrame::Preview(wxXmlNode *node, wxXmlDocument *orig_doc)
    m_Node = node;
    m_Doc = orig_doc;
 
+#if wxUSE_LOG
    m_LogCtrl->Clear();
    wxLogTextCtrl mylog(m_LogCtrl);
    wxLog *oldlog = wxLog::SetActiveTarget(&mylog);
-   
+#endif // wxUSE_LOG
+
    wxString oldcwd = wxGetCwd();
    wxSetWorkingDirectory(wxPathOnly(EditorFrame::Get()->GetFileName()));
-   
+
    if (XmlGetClass(node) == _T("wxMenuBar") || XmlGetClass(node) == _T("wxMenu"))
        PreviewMenu();
    else if (XmlGetClass(node) == _T("wxToolBar"))
@@ -190,19 +199,21 @@ void PreviewFrame::Preview(wxXmlNode *node, wxXmlDocument *orig_doc)
    else if (XmlGetClass(node) == _T("wxPanel") || XmlGetClass(node) == _T("wxDialog"))
        PreviewPanel();
    else if (XmlGetClass(node) == _T("wxFrame"))
-          PreviewWXFrame();    
+       PreviewWXFrame();
 
    wxSetWorkingDirectory(oldcwd);
+#if wxUSE_LOG
    wxLog::SetActiveTarget(oldlog);
-   
-   m_Dirty = FALSE;
+#endif // wxUSE_LOG
+
+   m_Dirty = false;
 }
 
 
 
 void PreviewFrame::PreviewMenu()
 {
-    wxMenuBar *mbar;
+    wxMenuBar *mbar = NULL;
 
     if (XmlGetClass(m_Node) == _T("wxMenuBar"))
         mbar = m_RC->LoadMenuBar(m_Node->GetPropVal(_T("name"), _T("-1")));
@@ -234,38 +245,38 @@ void PreviewFrame::PreviewPanel()
     else
     {
         m_ScrollWin->SetScrollbars(1, 1, panel->GetSize().x, panel->GetSize().y,
-                                   0, 0, TRUE);
+                                   0, 0, true);
     }
 }
 
 void PreviewFrame::PreviewWXFrame()
 {
-       //for this to work the frame MUST have a child panel!
-
-       wxXmlNode*      child = m_Node;
-       wxString name;
-
-       while( child != NULL)
-       {
-               name = child->GetPropVal(_T("name"), _T("-1"));
-               
-               if(name != _T("-1"))
-               {
-                       wxXmlNode* parent = child->GetParent();
-                       if(parent->GetPropVal(_T("class"),_T("-1")) == _T("wxPanel"))
-                               break;
-               }
-               child = child->GetNext();
-       }
+    //for this to work the frame MUST have a child panel!
+
+    wxXmlNode* child = m_Node;
+    wxString name;
+
+    while( child != NULL)
+    {
+        name = child->GetPropVal(_T("name"), _T("-1"));
+
+        if(name != _T("-1"))
+        {
+            wxXmlNode* parent = child->GetParent();
+            if(parent->GetPropVal(_T("class"),_T("-1")) == _T("wxPanel"))
+                break;
+        }
+        child = child->GetNext();
+    }
 
     wxPanel *panel = m_RC->LoadPanel(m_ScrollWin, name);
-    
+
     if (panel == NULL)
         wxLogError(_("Cannot preview the panel -- XML resource corrupted."));
     else
     {
         m_ScrollWin->SetScrollbars(1, 1, panel->GetSize().x, panel->GetSize().y,
-                                   0, 0, TRUE);
+                                   0, 0, true);
     }
 
 }
@@ -274,7 +285,7 @@ BEGIN_EVENT_TABLE(PreviewFrame, wxFrame)
     EVT_ENTER_WINDOW(PreviewFrame::OnMouseEnter)
 END_EVENT_TABLE()
 
-void PreviewFrame::OnMouseEnter(wxMouseEvent& event)
+void PreviewFrame::OnMouseEnter(wxMouseEvent& WXUNUSED(event))
 {
     if (m_Dirty) Preview(m_Node,m_Doc);
 }