From be66f18ee1e173d26d236ff340dfe34f8ef0e9cb Mon Sep 17 00:00:00 2001 From: =?utf8?q?W=C5=82odzimierz=20Skiba?= Date: Tue, 6 Jun 2006 15:39:16 +0000 Subject: [PATCH] Source cleaning, wxW headers, whitespaces and improved PCH support. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39598 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/aui/aui.h | 4 +- include/wx/aui/dockart.h | 6 +- include/wx/aui/floatpane.h | 6 +- include/wx/aui/framemanager.h | 40 ++-- src/aui/dockart.cpp | 55 +++-- src/aui/floatpane.cpp | 21 +- src/aui/framemanager.cpp | 387 +++++++++++++++++----------------- 7 files changed, 257 insertions(+), 262 deletions(-) diff --git a/include/wx/aui/aui.h b/include/wx/aui/aui.h index 967949ab1e..1f5efcd8b5 100644 --- a/include/wx/aui/aui.h +++ b/include/wx/aui/aui.h @@ -1,10 +1,10 @@ /////////////////////////////////////////////////////////////////////////////// -// Name: aui.h +// Name: wx/aui/aui.h // Purpose: wxaui: wx advanced user interface - docking window manager // Author: Benjamin I. Williams // Modified by: // Created: 2005-05-17 -// RCS-ID: +// RCS-ID: $Id$ // Copyright: (C) Copyright 2005, Kirix Corporation, All Rights Reserved. // Licence: wxWindows Library Licence, Version 3.1 /////////////////////////////////////////////////////////////////////////////// diff --git a/include/wx/aui/dockart.h b/include/wx/aui/dockart.h index 679b3229ee..b070cfab0b 100644 --- a/include/wx/aui/dockart.h +++ b/include/wx/aui/dockart.h @@ -1,10 +1,10 @@ /////////////////////////////////////////////////////////////////////////////// -// Name: dockart.h +// Name: wx/aui/dockart.h // Purpose: wxaui: wx advanced user interface - docking window manager // Author: Benjamin I. Williams // Modified by: // Created: 2005-05-17 -// RCS-ID: +// RCS-ID: $Id$ // Copyright: (C) Copyright 2005, Kirix Corporation, All Rights Reserved. // Licence: wxWindows Library Licence, Version 3.1 /////////////////////////////////////////////////////////////////////////////// @@ -44,7 +44,7 @@ public: virtual void SetColour(int id, const wxColor& colour) = 0; wxColor GetColor(int id) { return GetColour(id); } void SetColor(int id, const wxColor& color) { SetColour(id, color); } - + virtual void DrawSash(wxDC& dc, int orientation, const wxRect& rect) = 0; diff --git a/include/wx/aui/floatpane.h b/include/wx/aui/floatpane.h index 51c238598c..70b44ac90c 100644 --- a/include/wx/aui/floatpane.h +++ b/include/wx/aui/floatpane.h @@ -1,10 +1,10 @@ /////////////////////////////////////////////////////////////////////////////// -// Name: floatpane.h +// Name: wx/aui/floatpane.h // Purpose: wxaui: wx advanced user interface - docking window manager // Author: Benjamin I. Williams // Modified by: // Created: 2005-05-17 -// RCS-ID: +// RCS-ID: $Id$ // Copyright: (C) Copyright 2005, Kirix Corporation, All Rights Reserved. // Licence: wxWindows Library Licence, Version 3.1 /////////////////////////////////////////////////////////////////////////////// @@ -34,7 +34,7 @@ class WXDLLIMPEXP_AUI wxFloatingPane : public wxFloatingPaneBaseClass public: wxFloatingPane(wxWindow* parent, wxFrameManager* owner_mgr, - wxWindowID id = -1, + wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize); ~wxFloatingPane(); diff --git a/include/wx/aui/framemanager.h b/include/wx/aui/framemanager.h index 9336d79aca..56ffcc3d6f 100644 --- a/include/wx/aui/framemanager.h +++ b/include/wx/aui/framemanager.h @@ -1,10 +1,10 @@ /////////////////////////////////////////////////////////////////////////////// -// Name: framemanager.h +// Name: wx/aui/framemanager.h // Purpose: wxaui: wx advanced user interface - docking window manager // Author: Benjamin I. Williams // Modified by: // Created: 2005-05-17 -// RCS-ID: +// RCS-ID: $Id$ // Copyright: (C) Copyright 2005, Kirix Corporation, All Rights Reserved. // Licence: wxWindows Library Licence, Version 3.1 /////////////////////////////////////////////////////////////////////////////// @@ -134,7 +134,7 @@ public: min_size = wxDefaultSize; max_size = wxDefaultSize; dock_proportion = 0; - + DefaultPane(); } @@ -202,7 +202,7 @@ public: bool HasMinimizeButton() const { return HasFlag(buttonMinimize); } bool HasPinButton() const { return HasFlag(buttonPin); } bool HasGripperTop() const { return HasFlag(optionGripperTop); } - + wxPaneInfo& Window(wxWindow* w) { window = w; return *this; } wxPaneInfo& Name(const wxString& n) { name = n; return *this; } wxPaneInfo& Caption(const wxString& c) { caption = c; return *this; } @@ -236,7 +236,7 @@ public: wxPaneInfo& PaneBorder(bool visible = true) { return SetFlag(optionPaneBorder, visible); } wxPaneInfo& Gripper(bool visible = true) { return SetFlag(optionGripper, visible); } wxPaneInfo& GripperTop(bool attop = true) { return SetFlag(optionGripperTop, attop); } - wxPaneInfo& CloseButton(bool visible = true) { return SetFlag(buttonClose, visible); } + wxPaneInfo& CloseButton(bool visible = true) { return SetFlag(buttonClose, visible); } wxPaneInfo& MaximizeButton(bool visible = true) { return SetFlag(buttonMaximize, visible); } wxPaneInfo& MinimizeButton(bool visible = true) { return SetFlag(buttonMinimize, visible); } wxPaneInfo& PinButton(bool visible = true) { return SetFlag(buttonPin, visible); } @@ -244,7 +244,7 @@ public: wxPaneInfo& TopDockable(bool b = true) { return SetFlag(optionTopDockable, b); } wxPaneInfo& BottomDockable(bool b = true) { return SetFlag(optionBottomDockable, b); } wxPaneInfo& LeftDockable(bool b = true) { return SetFlag(optionLeftDockable, b); } - wxPaneInfo& RightDockable(bool b = true) { return SetFlag(optionRightDockable, b); } + wxPaneInfo& RightDockable(bool b = true) { return SetFlag(optionRightDockable, b); } wxPaneInfo& Floatable(bool b = true) { return SetFlag(optionFloatable, b); } wxPaneInfo& Movable(bool b = true) { return SetFlag(optionMovable, b); } wxPaneInfo& Dockable(bool b = true) @@ -260,14 +260,14 @@ public: optionCaption | optionPaneBorder | buttonClose; return *this; } - + wxPaneInfo& CentrePane() { return CenterPane(); } wxPaneInfo& CenterPane() { state = 0; return Center().PaneBorder().Resizable(); } - + wxPaneInfo& ToolbarPane() { DefaultPane(); @@ -286,7 +286,7 @@ public: state &= ~flag; return *this; } - + bool HasFlag(unsigned int flag) const { return (state & flag) ? true:false; @@ -311,7 +311,7 @@ public: optionDestroyOnClose = 1 << 12, optionToolbar = 1 << 13, optionActive = 1 << 14, - optionGripperTop = 1 << 15, + optionGripperTop = 1 << 15, buttonClose = 1 << 24, buttonMaximize = 1 << 25, @@ -363,13 +363,13 @@ public: unsigned int flags = wxAUI_MGR_DEFAULT); virtual ~wxFrameManager(); void UnInit(); - + void SetFlags(unsigned int flags); unsigned int GetFlags() const; - + void SetFrame(wxFrame* frame); wxFrame* GetFrame() const; - + void SetArtProvider(wxDockArt* art_provider); wxDockArt* GetArtProvider() const; @@ -379,22 +379,22 @@ public: bool AddPane(wxWindow* window, const wxPaneInfo& pane_info); - + bool AddPane(wxWindow* window, int direction = wxLEFT, const wxString& caption = wxEmptyString); - + bool InsertPane(wxWindow* window, const wxPaneInfo& pane_info, int insert_level = wxAUI_INSERT_PANE); - + bool DetachPane(wxWindow* window); wxString SavePerspective(); - + bool LoadPerspective(const wxString& perspective, bool update = true); - + void Update(); private: @@ -500,7 +500,7 @@ private: wxWindow* m_hint_wnd; // transparent hint window (for now, only msw) wxTimer m_hint_fadetimer; // transparent fade timer (for now, only msw) int m_hint_fadeamt; // transparent fade amount (for now, only msw) - + DECLARE_EVENT_TABLE() }; @@ -644,7 +644,7 @@ public: // spectrum of events will be implemented in the next incremental version BEGIN_DECLARE_EVENT_TYPES() - DECLARE_EVENT_TYPE(wxEVT_AUI_PANEBUTTON, 0) + DECLARE_EVENT_TYPE(wxEVT_AUI_PANEBUTTON, 0) END_DECLARE_EVENT_TYPES() typedef void (wxEvtHandler::*wxFrameManagerEventFunction)(wxFrameManagerEvent&); diff --git a/src/aui/dockart.cpp b/src/aui/dockart.cpp index d8028df887..99f782d509 100644 --- a/src/aui/dockart.cpp +++ b/src/aui/dockart.cpp @@ -1,10 +1,10 @@ /////////////////////////////////////////////////////////////////////////////// -// Name: dockart.cpp +// Name: src/aui/dockart.cpp // Purpose: wxaui: wx advanced user interface - docking window manager // Author: Benjamin I. Williams // Modified by: // Created: 2005-05-17 -// RCS-ID: +// RCS-ID: $Id$ // Copyright: (C) Copyright 2005-2006, Kirix Corporation, All Rights Reserved // Licence: wxWindows Library Licence, Version 3.1 /////////////////////////////////////////////////////////////////////////////// @@ -26,17 +26,12 @@ #if wxUSE_AUI #include "wx/image.h" -#include "wx/dcclient.h" -#include "wx/settings.h" #include "wx/aui/framemanager.h" #include "wx/aui/dockart.h" -#ifdef __WXMAC__ -#include "wx/mac/private.h" -#endif - #ifndef WX_PRECOMP -// #include "wx/log.h" + #include "wx/settings.h" + #include "wx/dcclient.h" #endif // -- wxDefaultDockArt class implementation -- @@ -54,9 +49,9 @@ static wxColor StepColour(const wxColor& c, int percent) { int r = c.Red(), g = c.Green(), b = c.Blue(); - return wxColour(wxMin((r*percent)/100,255), - wxMin((g*percent)/100,255), - wxMin((b*percent)/100,255)); + return wxColour((unsigned char)wxMin((r*percent)/100,255), + (unsigned char)wxMin((g*percent)/100,255), + (unsigned char)wxMin((b*percent)/100,255)); } static wxColor LightContrastColour(const wxColour& c) @@ -106,7 +101,9 @@ static void DrawGradientRectangle(wxDC& dc, int g = start_color.Green() + ((i*gd*100)/high)/100; int b = start_color.Blue() + ((i*bd*100)/high)/100; - wxPen p(wxColor(r,g,b)); + wxPen p(wxColor((unsigned char)r, + (unsigned char)g, + (unsigned char)b)); dc.SetPen(p); if (direction == wxAUI_GRADIENT_VERTICAL) @@ -126,7 +123,7 @@ wxDefaultDockArt::wxDefaultDockArt() #else wxColor base_color = wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE); #endif - + wxColor darker1_color = StepColour(base_color, 85); wxColor darker2_color = StepColour(base_color, 70); wxColor darker3_color = StepColour(base_color, 60); @@ -177,7 +174,7 @@ wxDefaultDockArt::wxDefaultDockArt() 0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xfc,0xdf,0xfc,0xdf,0xfc, 0xdf,0xfc,0xdf,0xfc,0xdf,0xfc,0x0f,0xf8,0x7f,0xff,0x7f,0xff, 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff}; - + #ifdef __WXMAC__ m_inactive_close_bitmap = BitmapFromBits(close_bits, 16, 16, *wxWHITE); #else @@ -240,16 +237,16 @@ wxColour wxDefaultDockArt::GetColour(int id) { switch (id) { - case wxAUI_ART_BACKGROUND_COLOUR: return m_background_brush.GetColour(); break; - case wxAUI_ART_SASH_COLOUR: return m_sash_brush.GetColour(); break; - case wxAUI_ART_INACTIVE_CAPTION_COLOUR: return m_inactive_caption_colour; break; - case wxAUI_ART_INACTIVE_CAPTION_GRADIENT_COLOUR: return m_inactive_caption_gradient_colour; break; - case wxAUI_ART_INACTIVE_CAPTION_TEXT_COLOUR: return m_inactive_caption_text_colour; break; - case wxAUI_ART_ACTIVE_CAPTION_COLOUR: return m_active_caption_colour; break; - case wxAUI_ART_ACTIVE_CAPTION_GRADIENT_COLOUR: return m_active_caption_gradient_colour; break; - case wxAUI_ART_ACTIVE_CAPTION_TEXT_COLOUR: return m_active_caption_text_colour; break; - case wxAUI_ART_BORDER_COLOUR: return m_border_pen.GetColour(); break; - case wxAUI_ART_GRIPPER_COLOUR: return m_gripper_brush.GetColour(); break; + case wxAUI_ART_BACKGROUND_COLOUR: return m_background_brush.GetColour(); + case wxAUI_ART_SASH_COLOUR: return m_sash_brush.GetColour(); + case wxAUI_ART_INACTIVE_CAPTION_COLOUR: return m_inactive_caption_colour; + case wxAUI_ART_INACTIVE_CAPTION_GRADIENT_COLOUR: return m_inactive_caption_gradient_colour; + case wxAUI_ART_INACTIVE_CAPTION_TEXT_COLOUR: return m_inactive_caption_text_colour; + case wxAUI_ART_ACTIVE_CAPTION_COLOUR: return m_active_caption_colour; + case wxAUI_ART_ACTIVE_CAPTION_GRADIENT_COLOUR: return m_active_caption_gradient_colour; + case wxAUI_ART_ACTIVE_CAPTION_TEXT_COLOUR: return m_active_caption_text_colour; + case wxAUI_ART_BORDER_COLOUR: return m_border_pen.GetColour(); + case wxAUI_ART_GRIPPER_COLOUR: return m_gripper_brush.GetColour(); default: wxFAIL_MSG(wxT("Invalid Metric Ordinal")); break; } @@ -305,13 +302,13 @@ void wxDefaultDockArt::DrawSash(wxDC& dc, int, const wxRect& rect) CGContextTranslateCTM( cgContext , 0 , bounds.bottom - bounds.top ) ; CGContextScaleCTM( cgContext , 1 , -1 ) ; #endif - + HIThemeSplitterDrawInfo drawInfo ; drawInfo.version = 0 ; drawInfo.state = kThemeStateActive ; drawInfo.adornment = kHIThemeSplitterAdornmentNone ; - HIThemeDrawPaneSplitter( &splitterRect , &drawInfo , cgContext , kHIThemeOrientationNormal ) ; - + HIThemeDrawPaneSplitter( &splitterRect , &drawInfo , cgContext , kHIThemeOrientationNormal ) ; + #if wxMAC_USE_CORE_GRAPHICS #else QDEndCGContext( (CGrafPtr) dc.m_macPort , &cgContext ) ; @@ -354,7 +351,7 @@ void wxDefaultDockArt::DrawBorder(wxDC& dc, const wxRect& _rect, dc.SetPen(*wxWHITE_PEN); dc.DrawLine(rect.x, rect.y, rect.x+rect.width, rect.y); dc.DrawLine(rect.x, rect.y, rect.x, rect.y+rect.height); - dc.SetPen(m_border_pen); + dc.SetPen(m_border_pen); dc.DrawLine(rect.x, rect.y+rect.height-1, rect.x+rect.width, rect.y+rect.height-1); dc.DrawLine(rect.x+rect.width-1, rect.y, diff --git a/src/aui/floatpane.cpp b/src/aui/floatpane.cpp index 13cba0343b..00b4bd7b52 100644 --- a/src/aui/floatpane.cpp +++ b/src/aui/floatpane.cpp @@ -1,10 +1,10 @@ /////////////////////////////////////////////////////////////////////////////// -// Name: floatpane.cpp +// Name: src/aui/floatpane.cpp // Purpose: wxaui: wx advanced user interface - docking window manager // Author: Benjamin I. Williams // Modified by: // Created: 2005-05-17 -// RCS-ID: +// RCS-ID: $Id$ // Copyright: (C) Copyright 2005-2006, Kirix Corporation, All Rights Reserved // Licence: wxWindows Library Licence, Version 3.1 /////////////////////////////////////////////////////////////////////////////// @@ -30,15 +30,14 @@ #include "wx/aui/dockart.h" #ifndef WX_PRECOMP -// #include "wx/log.h" #endif wxFloatingPane::wxFloatingPane(wxWindow* parent, wxFrameManager* owner_mgr, - wxWindowID id /*= -1*/, + wxWindowID id /*= wxID_ANY*/, const wxPoint& pos /*= wxDefaultPosition*/, const wxSize& size /*= wxDefaultSize*/) - : wxFloatingPaneBaseClass(parent, id, wxT(""), pos, size, + : wxFloatingPaneBaseClass(parent, id, wxEmptyString, pos, size, wxRESIZE_BORDER | wxSYSTEM_MENU | wxCAPTION | wxCLOSE_BOX | wxFRAME_NO_TASKBAR | wxFRAME_FLOAT_ON_PARENT | wxCLIP_CHILDREN) @@ -59,15 +58,15 @@ void wxFloatingPane::SetPaneWindow(const wxPaneInfo& pane) { m_pane_window = pane.window; m_pane_window->Reparent(this); - + wxPaneInfo contained_pane = pane; contained_pane.Dock().Center().Show(). CaptionVisible(false). PaneBorder(false). Layer(0).Row(0).Position(0); - + m_mgr.AddPane(m_pane_window, contained_pane); - m_mgr.Update(); + m_mgr.Update(); if (pane.min_size.IsFullySpecified()) { @@ -78,7 +77,7 @@ void wxFloatingPane::SetPaneWindow(const wxPaneInfo& pane) GetSizer()->SetSizeHints(this); SetSize(tmp); } - + SetTitle(pane.caption); if (contained_pane.IsFixed()) @@ -102,7 +101,7 @@ void wxFloatingPane::SetPaneWindow(const wxPaneInfo& pane) else size.x += m_owner_mgr->m_art->GetMetric(wxAUI_ART_GRIPPER_SIZE); } - + SetClientSize(size); } } @@ -137,7 +136,7 @@ void wxFloatingPane::OnMoveEvent(wxMoveEvent& event) } m_last_rect = win_rect; - + if (!isMouseDown()) return; diff --git a/src/aui/framemanager.cpp b/src/aui/framemanager.cpp index 48e7daf104..55303c23d3 100644 --- a/src/aui/framemanager.cpp +++ b/src/aui/framemanager.cpp @@ -1,10 +1,10 @@ /////////////////////////////////////////////////////////////////////////////// -// Name: framemanager.cpp +// Name: src/aui/framemanager.cpp // Purpose: wxaui: wx advanced user interface - docking window manager // Author: Benjamin I. Williams // Modified by: // Created: 2005-05-17 -// RCS-ID: +// RCS-ID: $Id$ // Copyright: (C) Copyright 2005-2006, Kirix Corporation, All Rights Reserved // Licence: wxWindows Library Licence, Version 3.1 /////////////////////////////////////////////////////////////////////////////// @@ -30,20 +30,19 @@ #include "wx/aui/floatpane.h" #ifndef WX_PRECOMP -// #include "wx/log.h" + #include "wx/settings.h" + #include "wx/app.h" + #include "wx/dcclient.h" + #include "wx/dcscreen.h" #endif //#include "wx/dcbuffer.h" -#include "wx/dcclient.h" -#include "wx/dcscreen.h" -#include "wx/app.h" #include "wx/image.h" -#include "wx/settings.h" #include "wx/toolbar.h" #if wxUSE_MDI -#include "wx/mdi.h" + #include "wx/mdi.h" #endif WX_CHECK_BUILD_OPTIONS("wxAUI") @@ -81,7 +80,7 @@ static void DrawResizeHint(wxDC& dc, const wxRect& rect) { wxBitmap stipple = wxPaneCreateStippleBitmap(); wxBrush brush(stipple); - dc.SetBrush(brush); + dc.SetBrush(brush); dc.SetPen(*wxTRANSPARENT_PEN); dc.SetLogicalFunction(wxXOR); @@ -100,24 +99,24 @@ static void MakeWindowTransparent(wxWindow* wnd, int amount) static PSETLAYEREDWINDOWATTR pSetLayeredWindowAttributes = NULL; static HMODULE h = NULL; HWND hwnd = (HWND)wnd->GetHWND(); - + if (!h) h = LoadLibrary(_T("user32")); - + if (!pSetLayeredWindowAttributes) { pSetLayeredWindowAttributes = (PSETLAYEREDWINDOWATTR)GetProcAddress(h,"SetLayeredWindowAttributes"); } - + if (pSetLayeredWindowAttributes == NULL) return; - + LONG exstyle = GetWindowLong(hwnd, GWL_EXSTYLE); if (0 == (exstyle & 0x80000) /*WS_EX_LAYERED*/) - SetWindowLong(hwnd, GWL_EXSTYLE, exstyle | 0x80000 /*WS_EX_LAYERED*/); - - pSetLayeredWindowAttributes(hwnd, 0, amount, 2 /*LWA_ALPHA*/); + SetWindowLong(hwnd, GWL_EXSTYLE, exstyle | 0x80000 /*WS_EX_LAYERED*/); + + pSetLayeredWindowAttributes(hwnd, 0, (BYTE)amount, 2 /*LWA_ALPHA*/); } #endif @@ -171,7 +170,7 @@ static int GetMaxRow(const wxPaneInfoArray& panes, int direction, int layer) { wxPaneInfo& pane = panes.Item(i); if (pane.dock_direction == direction && - pane.dock_layer == layer && + pane.dock_layer == layer && pane.dock_row > max_row) max_row = pane.dock_row; } @@ -216,7 +215,7 @@ static void DoInsertDockRow(wxPaneInfoArray& panes, } } -// DoInsertDockLayer() is an internal function that inserts a space for +// DoInsertDockLayer() is an internal function that inserts a space for // another dock pane by incrementing all existing dock row values by one static void DoInsertPane(wxPaneInfoArray& panes, int dock_direction, @@ -259,14 +258,14 @@ static void FindDocks(wxDockInfoArray& docks, max_row = wxMax(max_row, docks.Item(i).dock_row); max_layer = wxMax(max_layer, docks.Item(i).dock_layer); } - + // if no dock layer was specified, search all dock layers if (dock_layer == -1) { begin_layer = 0; end_layer = max_layer; } - + // if no dock row was specified, search all dock row if (dock_row == -1) { @@ -448,26 +447,26 @@ wxDockUIPart* wxFrameManager::HitTest(int x, int y) for (i = 0, part_count = m_uiparts.GetCount(); i < part_count; ++i) { wxDockUIPart* item = &m_uiparts.Item(i); - - // we are not interested in typeDock, because this space + + // we are not interested in typeDock, because this space // isn't used to draw anything, just for measurements; // besides, the entire dock area is covered with other // rectangles, which we are interested in. if (item->type == wxDockUIPart::typeDock) continue; - + // if we already have a hit on a more specific item, we are not // interested in a pane hit. If, however, we don't already have // a hit, returning a pane hit is necessary for some operations if ((item->type == wxDockUIPart::typePane || item->type == wxDockUIPart::typePaneBorder) && result) continue; - + // if the point is inside the rectangle, we have a hit if (item->rect.Inside(x,y)) result = item; } - + return result; } @@ -553,7 +552,7 @@ void wxFrameManager::SetArtProvider(wxDockArt* art_provider) { // delete the last art provider, if any delete m_art; - + // assign the new art provider m_art = art_provider; } @@ -574,16 +573,16 @@ bool wxFrameManager::AddPane(wxWindow* window, const wxPaneInfo& pane_info) // set the pane window pinfo.window = window; - + // if the pane's name identifier is blank, create a random string - if (pinfo.name.IsEmpty()) + if (pinfo.name.empty()) { pinfo.name.Printf(wxT("%08x%08x%08x%08x"), ((unsigned long)pinfo.window) & 0xffffffff, (unsigned int)time(NULL), (unsigned int)clock(), m_panes.GetCount()); } - + // set initial proportion (if not already set) if (pinfo.dock_proportion == 0) pinfo.dock_proportion = 100000; @@ -595,7 +594,7 @@ bool wxFrameManager::AddPane(wxWindow* window, const wxPaneInfo& pane_info) button.button_id = wxPaneInfo::buttonClose; pinfo.buttons.Add(button); } - + if (pinfo.best_size == wxDefaultSize && pinfo.window) { @@ -607,7 +606,7 @@ bool wxFrameManager::AddPane(wxWindow* window, const wxPaneInfo& pane_info) // a toolbar under some newer versions of wxWidgets, // so use GetBestSize() pinfo.best_size = pinfo.window->GetBestSize(); - + // for some reason, wxToolBar::GetBestSize() is returning // a size that is a pixel shy of the correct amount. // I believe this to be the correct action, until @@ -615,7 +614,7 @@ bool wxFrameManager::AddPane(wxWindow* window, const wxPaneInfo& pane_info) // correct? pinfo.best_size.y++; } - + if (pinfo.min_size != wxDefaultSize) { if (pinfo.best_size.x < pinfo.min_size.x) @@ -670,7 +669,7 @@ bool wxFrameManager::InsertPane(wxWindow* window, const wxPaneInfo& pane_info, pane_info.dock_layer); break; } - + // if the window already exists, we are basically just moving/inserting the // existing window. If it doesn't exist, we need to add it and insert it wxPaneInfo& existing_pane = GetPane(window); @@ -700,13 +699,13 @@ bool wxFrameManager::InsertPane(wxWindow* window, const wxPaneInfo& pane_info, return true; } - + bool wxFrameManager::DetachPane(wxWindow* window) { int i, count; for (i = 0, count = m_panes.GetCount(); i < count; ++i) { - wxPaneInfo& p = m_panes.Item(i); + wxPaneInfo& p = m_panes.Item(i); if (p.window == window) { if (p.frame) @@ -738,7 +737,7 @@ bool wxFrameManager::DetachPane(wxWindow* window) static wxString EscapeDelimiters(const wxString& s) { wxString result; - result.Alloc(s.Length()); + result.Alloc(s.length()); const wxChar* ch = s.c_str(); while (*ch) { @@ -766,15 +765,15 @@ wxString wxFrameManager::SavePerspective() for (pane_i = 0; pane_i < pane_count; ++pane_i) { wxPaneInfo& pane = m_panes.Item(pane_i); - + result += wxT("name="); result += EscapeDelimiters(pane.name); result += wxT(";"); - + result += wxT("caption="); result += EscapeDelimiters(pane.caption); result += wxT(";"); - + result += wxString::Format(wxT("state=%u;"), pane.state); result += wxString::Format(wxT("dir=%d;"), pane.dock_direction); result += wxString::Format(wxT("layer=%d;"), pane.dock_layer); @@ -793,17 +792,17 @@ wxString wxFrameManager::SavePerspective() result += wxString::Format(wxT("floath=%d"), pane.floating_size.y); result += wxT("|"); } - + int dock_i, dock_count = m_docks.GetCount(); for (dock_i = 0; dock_i < dock_count; ++dock_i) { wxDockInfo& dock = m_docks.Item(dock_i); - + result += wxString::Format(wxT("dock_size(%d,%d,%d)=%d|"), dock.dock_direction, dock.dock_layer, dock.dock_row, dock.size); } - + return result; } @@ -814,7 +813,7 @@ bool wxFrameManager::LoadPerspective(const wxString& layout, bool update) { wxString input = layout; wxString part; - + // check layout string version part = input.BeforeFirst(wxT('|')); input = input.AfterFirst(wxT('|')); @@ -822,8 +821,8 @@ bool wxFrameManager::LoadPerspective(const wxString& layout, bool update) part.Trim(false); if (part != wxT("layout1")) return false; - - + + // mark all panes currently managed as docked and hidden int pane_i, pane_count = m_panes.GetCount(); for (pane_i = 0; pane_i < pane_count; ++pane_i) @@ -831,12 +830,12 @@ bool wxFrameManager::LoadPerspective(const wxString& layout, bool update) // clear out the dock array; this will be reconstructed m_docks.Clear(); - + // replace escaped characters so we can // split up the string easily input.Replace(wxT("\\|"), wxT("\a")); input.Replace(wxT("\\;"), wxT("\b")); - + while (1) { wxPaneInfo pane; @@ -846,7 +845,7 @@ bool wxFrameManager::LoadPerspective(const wxString& layout, bool update) pane_part.Trim(true); // if the string is empty, we're done parsing - if (pane_part.IsEmpty()) + if (pane_part.empty()) break; @@ -854,7 +853,7 @@ bool wxFrameManager::LoadPerspective(const wxString& layout, bool update) { wxString val_name = pane_part.BeforeFirst(wxT('=')); wxString value = pane_part.AfterFirst(wxT('=')); - + long dir, layer, row, size; wxString piece = val_name.AfterFirst(wxT('(')); piece = piece.BeforeLast(wxT(')')); @@ -863,7 +862,7 @@ bool wxFrameManager::LoadPerspective(const wxString& layout, bool update) piece.BeforeFirst(wxT(',')).ToLong(&layer); piece.AfterFirst(wxT(',')).ToLong(&row); value.ToLong(&size); - + wxDockInfo dock; dock.dock_direction = dir; dock.dock_layer = layer; @@ -884,8 +883,8 @@ bool wxFrameManager::LoadPerspective(const wxString& layout, bool update) val_name.Trim(false); value.Trim(true); value.Trim(false); - - if (val_name.IsEmpty()) + + if (val_name.empty()) break; if (val_name == wxT("name")) @@ -928,14 +927,14 @@ bool wxFrameManager::LoadPerspective(const wxString& layout, bool update) wxFAIL_MSG(wxT("Bad Perspective String")); } } - + // replace escaped characters so we can // split up the string easily pane.name.Replace(wxT("\a"), wxT("|")); pane.name.Replace(wxT("\b"), wxT(";")); pane.caption.Replace(wxT("\a"), wxT("|")); pane.caption.Replace(wxT("\b"), wxT(";")); - + wxPaneInfo& p = GetPane(pane.name); if (!p.IsOk()) { @@ -943,13 +942,13 @@ bool wxFrameManager::LoadPerspective(const wxString& layout, bool update) // in the existing layout return false; } - + pane.window = p.window; pane.frame = p.frame; pane.buttons = p.buttons; p = pane; } - + if (update) Update(); @@ -982,7 +981,7 @@ void wxFrameManager::GetPanePositionsAndSizes(wxDockInfo& dock, action_pane = pane_i; } } - + // set up each panes default position, and // determine the size (width or height, depending // on the dock's orientation) of each pane @@ -991,10 +990,10 @@ void wxFrameManager::GetPanePositionsAndSizes(wxDockInfo& dock, wxPaneInfo& pane = *(dock.panes.Item(pane_i)); positions.Add(pane.dock_pos); int size = 0; - + if (pane.HasBorder()) size += (pane_border_size*2); - + if (dock.IsHorizontal()) { if (pane.HasGripper() && !pane.HasGripperTop()) @@ -1007,10 +1006,10 @@ void wxFrameManager::GetPanePositionsAndSizes(wxDockInfo& dock, size += gripper_size; if (pane.HasCaption()) - size += caption_size; + size += caption_size; size += pane.best_size.y; } - + sizes.Add(size); } @@ -1031,7 +1030,7 @@ void wxFrameManager::GetPanePositionsAndSizes(wxDockInfo& dock, offset += sizes[pane_i]; } - + // if the dock mode is fixed, make sure none of the panes // overlap; we will bump panes that overlap offset = 0; @@ -1053,7 +1052,7 @@ void wxFrameManager::LayoutAddPane(wxSizer* cont, wxPaneInfo& pane, wxDockUIPartArray& uiparts, bool spacer_only) -{ +{ wxDockUIPart part; wxSizerItem* sizer_item; @@ -1081,7 +1080,7 @@ void wxFrameManager::LayoutAddPane(wxSizer* cont, { if (pane.HasGripperTop()) sizer_item = vert_pane_sizer ->Add(1, gripper_size, 0, wxEXPAND); - else + else sizer_item = horz_pane_sizer ->Add(gripper_size, 1, 0, wxEXPAND); part.type = wxDockUIPart::typeGripper; @@ -1162,7 +1161,7 @@ void wxFrameManager::LayoutAddPane(wxSizer* cont, // determine if the pane should have a minimum size; if the pane is // non-resizable (fixed) then we must set a minimum size. Alternitavely, // if the pane.min_size is set, we must use that value as well - + wxSize min_size = pane.min_size; if (pane.IsFixed()) { @@ -1172,7 +1171,7 @@ void wxFrameManager::LayoutAddPane(wxSizer* cont, pane_proportion = 0; } } - + if (min_size != wxDefaultSize) { vert_pane_sizer->SetItemMinSize( @@ -1244,7 +1243,7 @@ void wxFrameManager::LayoutAddDock(wxSizer* cont, if (dock.fixed) { wxArrayInt pane_positions, pane_sizes; - + // figure out the real pane positions we will // use, without modifying the each pane's pane_pos member GetPanePositionsAndSizes(dock, pane_positions, pane_sizes); @@ -1365,12 +1364,12 @@ wxSizer* wxFrameManager::LayoutAll(wxPaneInfoArray& panes, int caption_size = m_art->GetMetric(wxAUI_ART_CAPTION_SIZE); wxSize cli_size = m_frame->GetClientSize(); int i, dock_count, pane_count; - + // empty all docks out for (i = 0, dock_count = docks.GetCount(); i < dock_count; ++i) docks.Item(i).panes.Empty(); - + // iterate through all known panes, filing each // of them into the appropriate dock. If the // pane does not exist in the dock, add it @@ -1405,7 +1404,7 @@ wxSizer* wxFrameManager::LayoutAll(wxPaneInfoArray& panes, RemovePaneFromDocks(docks, p, dock); // pane needs to be added to the dock, - // if it doesn't already exist + // if it doesn't already exist if (!FindPaneInDock(*dock, p.window)) dock->panes.Add(&p); } @@ -1429,7 +1428,7 @@ wxSizer* wxFrameManager::LayoutAll(wxPaneInfoArray& panes, { wxDockInfo& dock = docks.Item(i); int j, dock_pane_count = dock.panes.GetCount(); - + // sort the dock pane array by the pane's // dock position (dock_pos), in ascending order dock.panes.Sort(PaneSortFunc); @@ -1447,13 +1446,13 @@ wxSizer* wxFrameManager::LayoutAll(wxPaneInfoArray& panes, pane_size = pane.min_size; if (pane_size == wxDefaultSize) pane_size = pane.window->GetSize(); - + if (dock.IsHorizontal()) size = wxMax(pane_size.y, size); else size = wxMax(pane_size.x, size); } - + // add space for the border (two times), but only // if at least one pane inside the dock has a pane border for (j = 0; j < dock_pane_count; ++j) @@ -1516,15 +1515,15 @@ wxSizer* wxFrameManager::LayoutAll(wxPaneInfoArray& panes, } } } - + if (plus_border) dock_min_size += (pane_border_size*2); if (plus_caption && dock.IsHorizontal()) dock_min_size += (caption_size); - + dock.min_size = dock_min_size; - - + + // if the pane's current size is less than it's // minimum, increase the dock's size to it's minimum if (dock.size < dock.min_size) @@ -1568,7 +1567,7 @@ wxSizer* wxFrameManager::LayoutAll(wxPaneInfoArray& panes, { wxArrayInt pane_positions, pane_sizes; GetPanePositionsAndSizes(dock, pane_positions, pane_sizes); - + int offset = 0; for (j = 0; j < dock_pane_count; ++j) { @@ -1585,12 +1584,12 @@ wxSizer* wxFrameManager::LayoutAll(wxPaneInfoArray& panes, } } } - + // discover the maximum dock layer int max_layer = 0; for (i = 0; i < dock_count; ++i) max_layer = wxMax(max_layer, docks.Item(i).dock_layer); - + // clear out uiparts uiparts.Empty(); @@ -1629,10 +1628,10 @@ wxSizer* wxFrameManager::LayoutAll(wxPaneInfoArray& panes, LayoutAddDock(cont, *arr.Item(row), uiparts, spacer_only); } - + // fill out the middle layer (which consists // of left docks, content area and right docks) - + middle = new wxBoxSizer(wxHORIZONTAL); // find any left docks in this layer @@ -1741,11 +1740,11 @@ void wxFrameManager::Update() { // because the pane is no longer in a floating, we need to // reparent it to m_frame and destroy the floating frame - + // reduce flicker p.window->SetSize(1,1); p.frame->Show(false); - + // reparent to m_frame and destroy the pane p.window->Reparent(m_frame); p.frame->SetSizer(NULL); @@ -1774,16 +1773,16 @@ void wxFrameManager::Update() this, -1, p.floating_pos, p.floating_size); - + // on MSW, if the owner desires transparent dragging, and // the dragging is happening right now, then the floating - // window should have this style by default - #ifdef __WXMSW__ + // window should have this style by default +#ifdef __WXMSW__ if (m_action == actionDragFloatingPane && (m_flags & wxAUI_MGR_TRANSPARENT_DRAG)) MakeWindowTransparent(frame, 150); - #endif - +#endif + frame->SetPaneWindow(p); p.frame = frame; @@ -1863,9 +1862,9 @@ void wxFrameManager::Update() Repaint(); - + // set frame's minimum size - + /* // N.B. More work needs to be done on frame minimum sizes; // this is some intresting code that imposes the minimum size, @@ -1877,9 +1876,9 @@ void wxFrameManager::Update() wxSize minframe_size(min_size.x+frame_size.x-client_size.x, min_size.y+frame_size.y-client_size.y ); - + m_frame->SetMinSize(minframe_size); - + if (frame_size.x < minframe_size.x || frame_size.y < minframe_size.y) sizer->Fit(m_frame); @@ -1895,7 +1894,7 @@ void wxFrameManager::Update() void wxFrameManager::DoFrameLayout() { m_frame->Layout(); - + int i, part_count; for (i = 0, part_count = m_uiparts.GetCount(); i < part_count; ++i) { @@ -1906,7 +1905,7 @@ void wxFrameManager::DoFrameLayout() // part.rect = wxRect(part.sizer_item->GetPosition(), // part.sizer_item->GetSize()); // this worked quite well, with one exception: the mdi - // client window had a "deferred" size variable + // client window had a "deferred" size variable // that returned the wrong size. It looks like // a bug in wx, because the former size of the window // was being returned. So, we will retrieve the part's @@ -1976,7 +1975,7 @@ int wxFrameManager::GetDockPixelOffset(wxPaneInfo& test) { // the only way to accurately calculate the dock's // offset is to actually run a theoretical layout - + int i, part_count, dock_count; wxDockInfoArray docks; wxPaneInfoArray panes; @@ -1997,9 +1996,9 @@ int wxFrameManager::GetDockPixelOffset(wxPaneInfo& test) if (part.type == wxDockUIPart::typeDock) part.dock->rect = part.rect; } - + delete sizer; - + for (i = 0, dock_count = docks.GetCount(); i < dock_count; ++i) { wxDockInfo& dock = docks.Item(i); @@ -2067,7 +2066,7 @@ bool wxFrameManager::DoDrop(wxDockInfoArray& docks, // The result should always be shown drop.Show(); - + // Check to see if the pane has been dragged outside of the window // (or near to the outside of the window), if so, dock it along the edge @@ -2076,13 +2075,13 @@ bool wxFrameManager::DoDrop(wxDockInfoArray& docks, int layer_insert_offset = auiLayerInsertOffset; if (target.IsToolbar()) layer_insert_offset = 0; - + if (pt.x < layer_insert_offset && pt.x > layer_insert_offset-auiLayerInsertPixels) { int new_layer = wxMax(wxMax(GetMaxLayer(docks, wxAUI_DOCK_LEFT), GetMaxLayer(docks, wxAUI_DOCK_BOTTOM)), - GetMaxLayer(docks, wxAUI_DOCK_TOP)) + 1; + GetMaxLayer(docks, wxAUI_DOCK_TOP)) + 1; drop.Dock().Left(). Layer(new_layer). Row(0). @@ -2106,7 +2105,7 @@ bool wxFrameManager::DoDrop(wxDockInfoArray& docks, { int new_layer = wxMax(wxMax(GetMaxLayer(docks, wxAUI_DOCK_RIGHT), GetMaxLayer(docks, wxAUI_DOCK_TOP)), - GetMaxLayer(docks, wxAUI_DOCK_BOTTOM)) + 1; + GetMaxLayer(docks, wxAUI_DOCK_BOTTOM)) + 1; drop.Dock().Right(). Layer(new_layer). Row(0). @@ -2134,7 +2133,7 @@ bool wxFrameManager::DoDrop(wxDockInfoArray& docks, { if (!part || !part->dock) return false; - + // calculate the offset from where the dock begins // to the point where the user dropped the pane @@ -2157,10 +2156,10 @@ bool wxFrameManager::DoDrop(wxDockInfoArray& docks, { drop.Float(); } - + return ProcessDockResult(target, drop); } - + drop.Dock(). Direction(part->dock->dock_direction). Layer(part->dock->dock_layer). @@ -2178,7 +2177,7 @@ bool wxFrameManager::DoDrop(wxDockInfoArray& docks, part->dock->dock_row); drop.dock_row = row; } - + if (( ((pt.y > part->dock->rect.y + part->dock->rect.height - 2 ) && part->dock->IsHorizontal()) || ((pt.x > part->dock->rect.x + part->dock->rect.width - 2 ) && part->dock->IsVertical()) @@ -2195,7 +2194,7 @@ bool wxFrameManager::DoDrop(wxDockInfoArray& docks, - + if (!part) return false; @@ -2266,12 +2265,12 @@ bool wxFrameManager::DoDrop(wxDockInfoArray& docks, part = GetPanePart(part->pane->window); if (!part) return false; - + bool insert_dock_row = false; int insert_row = part->pane->dock_row; int insert_dir = part->pane->dock_direction; int insert_layer = part->pane->dock_layer; - + switch (part->pane->dock_direction) { case wxAUI_DOCK_TOP: @@ -2307,7 +2306,7 @@ bool wxFrameManager::DoDrop(wxDockInfoArray& docks, if (new_row_pixels_y > (part->rect.height*20)/100) new_row_pixels_y = (part->rect.height*20)/100; - + // determine if the mouse pointer is in a location that // will cause a new row to be inserted. The hot spot positions // are along the borders of the center pane @@ -2337,7 +2336,7 @@ bool wxFrameManager::DoDrop(wxDockInfoArray& docks, } if (insert_dock_row) - { + { DoInsertDockRow(panes, insert_dir, insert_layer, insert_row); drop.Dock().Direction(insert_dir). Layer(insert_layer). @@ -2345,25 +2344,25 @@ bool wxFrameManager::DoDrop(wxDockInfoArray& docks, Position(0); return ProcessDockResult(target, drop); } - + // determine the mouse offset and the pane size, both in the // direction of the dock itself, and perpendicular to the dock - + int offset, size; - + if (part->orientation == wxVERTICAL) { offset = pt.y - part->rect.y; - size = part->rect.GetHeight(); + size = part->rect.GetHeight(); } else { offset = pt.x - part->rect.x; size = part->rect.GetWidth(); } - + int drop_position = part->pane->dock_pos; - + // if we are in the top/left part of the pane, // insert the pane before the pane being hovered over if (offset <= size/2) @@ -2408,7 +2407,7 @@ void wxFrameManager::OnHintFadeTimer(wxTimerEvent& WXUNUSED(event)) m_hint_fadetimer.Stop(); return; } - + m_hint_fadeamt += 5; MakeWindowTransparent(m_hint_wnd, m_hint_fadeamt); #endif @@ -2416,31 +2415,31 @@ void wxFrameManager::OnHintFadeTimer(wxTimerEvent& WXUNUSED(event)) void wxFrameManager::ShowHint(const wxRect& rect) { - #ifdef __WXMSW__ - +#ifdef __WXMSW__ + // First, determine if the operating system can handle transparency. // Transparency is available on Win2000 and above - + static int os_type = -1; static int ver_major = -1; - + if (os_type == -1) os_type = ::wxGetOsVersion(&ver_major); // If the transparent flag is set, and the OS supports it, // go ahead and use a transparent hint - + if ((m_flags & wxAUI_MGR_TRANSPARENT_HINT) != 0 && os_type == wxWINDOWS_NT && ver_major >= 5) { if (m_last_hint == rect) return; m_last_hint = rect; - + int initial_fade = 50; if (m_flags & wxAUI_MGR_TRANSPARENT_HINT_FADE) initial_fade = 0; - + if (m_hint_wnd == NULL) { wxPoint pt = rect.GetPosition(); @@ -2468,7 +2467,7 @@ void wxFrameManager::ShowHint(const wxRect& rect) MakeWindowTransparent(m_hint_wnd, initial_fade); m_hint_wnd->SetSize(pt.x, pt.y, rect.width, rect.height); } - + if (m_flags & wxAUI_MGR_TRANSPARENT_HINT_FADE) { // start fade in timer @@ -2476,10 +2475,10 @@ void wxFrameManager::ShowHint(const wxRect& rect) m_hint_fadetimer.SetOwner(this, 101); m_hint_fadetimer.Start(5); } - + return; } - #endif +#endif if (m_last_hint != rect) { @@ -2488,7 +2487,7 @@ void wxFrameManager::ShowHint(const wxRect& rect) m_frame->Refresh(); m_frame->Update(); } - + wxScreenDC screendc; wxRegion clip(1, 1, 10000, 10000); @@ -2527,9 +2526,9 @@ void wxFrameManager::ShowHint(const wxRect& rect) } void wxFrameManager::HideHint() -{ +{ // hides a transparent window hint (currently wxMSW only) - #ifdef __WXMSW__ +#ifdef __WXMSW__ if (m_hint_wnd) { MakeWindowTransparent(m_hint_wnd, 0); @@ -2537,8 +2536,8 @@ void wxFrameManager::HideHint() m_last_hint = wxRect(); return; } - #endif - +#endif + // hides a painted hint by redrawing the frame window if (!m_last_hint.IsEmpty()) { @@ -2618,7 +2617,7 @@ void wxFrameManager::DrawHintRect(wxWindow* pane_window, break; } } - + delete sizer; if (rect.IsEmpty()) @@ -2637,11 +2636,11 @@ void wxFrameManager::OnFloatingPaneMoveStart(wxWindow* wnd) // try to find the pane wxPaneInfo& pane = GetPane(wnd); wxASSERT_MSG(pane.IsOk(), wxT("Pane window not found")); - - #ifdef __WXMSW__ + +#ifdef __WXMSW__ if (m_flags & wxAUI_MGR_TRANSPARENT_DRAG) MakeWindowTransparent(pane.frame, 150); - #endif +#endif } void wxFrameManager::OnFloatingPaneMoving(wxWindow* wnd) @@ -2649,10 +2648,10 @@ void wxFrameManager::OnFloatingPaneMoving(wxWindow* wnd) // try to find the pane wxPaneInfo& pane = GetPane(wnd); wxASSERT_MSG(pane.IsOk(), wxT("Pane window not found")); - + wxPoint pt = ::wxGetMousePosition(); wxPoint client_pt = m_frame->ScreenToClient(pt); - + // calculate the offset from the upper left-hand corner // of the frame to the mouse pointer wxPoint frame_pos = pane.frame->GetPosition(); @@ -2667,7 +2666,7 @@ void wxFrameManager::OnFloatingPaneMoving(wxWindow* wnd) wxPaneInfoArray panes; wxDockUIPartArray uiparts; wxPaneInfo hint = pane; - + CopyDocksAndPanes(docks, panes, m_docks, m_panes); // find out where the new pane would be @@ -2675,14 +2674,14 @@ void wxFrameManager::OnFloatingPaneMoving(wxWindow* wnd) return; if (hint.IsFloating()) return; - + pane = hint; m_action = actionDragToolbarPane; m_action_window = pane.window; - + Update(); } - + return; } @@ -2698,14 +2697,14 @@ void wxFrameManager::OnFloatingPaneMoving(wxWindow* wnd) DrawHintRect(wnd, client_pt, action_offset); - #ifdef __WXGTK__ +#ifdef __WXGTK__ // this cleans up some screen artifacts that are caused on GTK because // we aren't getting the exact size of the window (see comment // in DrawHintRect) //Refresh(); - #endif - - +#endif + + // reduces flicker m_frame->Update(); } @@ -2715,15 +2714,15 @@ void wxFrameManager::OnFloatingPaneMoved(wxWindow* wnd) // try to find the pane wxPaneInfo& pane = GetPane(wnd); wxASSERT_MSG(pane.IsOk(), wxT("Pane window not found")); - + wxPoint pt = ::wxGetMousePosition(); wxPoint client_pt = m_frame->ScreenToClient(pt); - + // calculate the offset from the upper left-hand corner // of the frame to the mouse pointer wxPoint frame_pos = pane.frame->GetPosition(); wxPoint action_offset(pt.x-frame_pos.x, pt.y-frame_pos.y); - + // if a key modifier is pressed while dragging the frame, // don't dock the window @@ -2742,15 +2741,15 @@ void wxFrameManager::OnFloatingPaneMoved(wxWindow* wnd) if (pane.IsFloating()) { pane.floating_pos = pane.frame->GetPosition(); - + #ifdef __WXMSW__ if (m_flags & wxAUI_MGR_TRANSPARENT_DRAG) MakeWindowTransparent(pane.frame, 255); #endif } - + Update(); - + HideHint(); } @@ -2759,7 +2758,7 @@ void wxFrameManager::OnFloatingPaneResized(wxWindow* wnd, const wxSize& size) // try to find the pane wxPaneInfo& pane = GetPane(wnd); wxASSERT_MSG(pane.IsOk(), wxT("Pane window not found")); - + pane.floating_size = size; } @@ -2808,7 +2807,7 @@ void wxFrameManager::Render(wxDC* dc) // don't draw hidden pane items if (part.sizer_item && !part.sizer_item->IsShown()) continue; - + switch (part.type) { case wxDockUIPart::typeDockSizer: @@ -2823,7 +2822,7 @@ void wxFrameManager::Render(wxDC* dc) break; case wxDockUIPart::typeGripper: m_art->DrawGripper(*dc, part.rect, *part.pane); - break; + break; case wxDockUIPart::typePaneBorder: m_art->DrawBorder(*dc, part.rect, *part.pane); break; @@ -2929,7 +2928,7 @@ void wxFrameManager::OnSetCursor(wxSetCursorEvent& event) cursor = wxCursor(wxCURSOR_SIZING); } } - + event.SetCursor(cursor); } @@ -2941,7 +2940,7 @@ void wxFrameManager::UpdateButtonOnScreen(wxDockUIPart* button_ui_part, wxDockUIPart* hit_test = HitTest(event.GetX(), event.GetY()); int state = wxAUI_BUTTON_STATE_NORMAL; - + if (hit_test == button_ui_part) { if (event.LeftDown()) @@ -3129,13 +3128,13 @@ void wxFrameManager::OnLeftUp(wxMouseEvent& event) wxPaneInfo& p = *dock.panes.Item(i); if (p.window == pane.window) pane_position = i; - + // while we're at it, subtract the pane sash // width from the dock width, because this would // skew our proportion calculations if (i > 0) dock_pixels -= sash_size; - + // also, the whole size (including decorations) of // all fixed panes must also be subtracted, because they // are not part of the proportion calculation @@ -3151,7 +3150,7 @@ void wxFrameManager::OnLeftUp(wxMouseEvent& event) total_proportion += p.dock_proportion; } } - + // find a pane in our dock to 'steal' space from or to 'give' // space to -- this is essentially what is done when a pane is // resized; the pane should usually be the first non-fixed pane @@ -3166,12 +3165,12 @@ void wxFrameManager::OnLeftUp(wxMouseEvent& event) break; } } - - + + // demand that the pane being resized is found in this dock // (this assert really never should be raised) wxASSERT_MSG(pane_position != -1, wxT("Pane not found in dock")); - + // prevent division by zero if (dock_pixels == 0 || total_proportion == 0 || borrow_pane == -1) { @@ -3181,10 +3180,10 @@ void wxFrameManager::OnLeftUp(wxMouseEvent& event) // calculate the new proportion of the pane int new_proportion = (new_pixsize*total_proportion)/dock_pixels; - + // default minimum size int min_size = 0; - + // check against the pane's minimum size, if specified. please note // that this is not enough to ensure that the minimum size will // not be violated, because the whole frame might later be shrunk, @@ -3192,7 +3191,7 @@ void wxFrameManager::OnLeftUp(wxMouseEvent& event) if (pane.min_size.IsFullySpecified()) { min_size = 0; - + if (pane.HasBorder()) min_size += (pane_border_size*2); @@ -3208,8 +3207,8 @@ void wxFrameManager::OnLeftUp(wxMouseEvent& event) min_size += pane.min_size.x; } } - - + + // for some reason, an arithmatic error somewhere is causing // the proportion calculations to always be off by 1 pixel; // for now we will add the 1 pixel on, but we really should @@ -3217,19 +3216,19 @@ void wxFrameManager::OnLeftUp(wxMouseEvent& event) min_size++; int min_proportion = (min_size*total_proportion)/dock_pixels; - + if (new_proportion < min_proportion) new_proportion = min_proportion; - - - + + + int prop_diff = new_proportion - pane.dock_proportion; // borrow the space from our neighbor pane to the // right or bottom (depending on orientation) dock.panes.Item(borrow_pane)->dock_proportion -= prop_diff; pane.dock_proportion = new_proportion; - + // repaint Update(); Repaint(NULL); @@ -3238,12 +3237,12 @@ void wxFrameManager::OnLeftUp(wxMouseEvent& event) else if (m_action == actionClickButton) { m_hover_button = NULL; - m_frame->ReleaseMouse(); + m_frame->ReleaseMouse(); UpdateButtonOnScreen(m_action_part, event); // make sure we're still over the item that was originally clicked if (m_action_part == HitTest(event.GetX(), event.GetY())) - { + { // fire button-click event wxFrameManagerEvent e(wxEVT_AUI_PANEBUTTON); e.SetPane(m_action_part->pane); @@ -3265,7 +3264,7 @@ void wxFrameManager::OnLeftUp(wxMouseEvent& event) wxPaneInfo& pane = GetPane(m_action_window); wxASSERT_MSG(pane.IsOk(), wxT("Pane window not found")); - + // save the new positions wxDockInfoPtrArray docks; FindDocks(m_docks, pane.dock_direction, @@ -3273,15 +3272,15 @@ void wxFrameManager::OnLeftUp(wxMouseEvent& event) if (docks.GetCount() == 1) { wxDockInfo& dock = *docks.Item(0); - + wxArrayInt pane_positions, pane_sizes; GetPanePositionsAndSizes(dock, pane_positions, pane_sizes); - + int i, dock_pane_count = dock.panes.GetCount(); for (i = 0; i < dock_pane_count; ++i) dock.panes.Item(i)->dock_pos = pane_positions[i]; } - + pane.state &= ~wxPaneInfo::actionPane; Update(); } @@ -3302,13 +3301,13 @@ void wxFrameManager::OnMotion(wxMouseEvent& event) // sure that only real mouse moves will get anywhere in this method; // this appears to be a bug somewhere, and I don't know where the // mouse move event is being generated. only verified on MSW - + wxPoint mouse_pos = event.GetPosition(); if (m_last_mouse_move == mouse_pos) return; m_last_mouse_move = mouse_pos; - + if (m_action == actionResize) { wxPoint pos = m_action_part->rect.GetPosition(); @@ -3330,19 +3329,19 @@ void wxFrameManager::OnMotion(wxMouseEvent& event) { int drag_x_threshold = wxSystemSettings::GetMetric(wxSYS_DRAG_X); int drag_y_threshold = wxSystemSettings::GetMetric(wxSYS_DRAG_Y); - + // caption has been clicked. we need to check if the mouse // is now being dragged. if it is, we need to change the // mouse action to 'drag' if (abs(event.m_x - m_action_start.x) > drag_x_threshold || - abs(event.m_y - m_action_start.y) > drag_y_threshold) + abs(event.m_y - m_action_start.y) > drag_y_threshold) { wxPaneInfo* pane_info = m_action_part->pane; if (!pane_info->IsToolbar()) { if ((m_flags & wxAUI_MGR_ALLOW_FLOATING) && - pane_info->IsFloatable()) + pane_info->IsFloatable()) { m_action = actionDragFloatingPane; @@ -3355,7 +3354,7 @@ void wxFrameManager::OnMotion(wxMouseEvent& event) Update(); m_action_window = pane_info->frame; - + // action offset is used here to make it feel "natural" to the user // to drag a docked pane and suddenly have it become a floating frame. // Sometimes, however, the offset where the user clicked on the docked @@ -3388,7 +3387,7 @@ void wxFrameManager::OnMotion(wxMouseEvent& event) wxPoint pt = event.GetPosition(); DoDrop(m_docks, m_panes, pane, pt, m_action_offset); - + // if DoDrop() decided to float the pane, set up // the floating pane's initial position if (pane.IsFloating()) @@ -3397,13 +3396,13 @@ void wxFrameManager::OnMotion(wxMouseEvent& event) pane.floating_pos = wxPoint(pt.x - m_action_offset.x, pt.y - m_action_offset.y); } - + // this will do the actiual move operation; // in the case that the pane has been floated, // this call will create the floating pane // and do the reparenting Update(); - + // if the pane has been floated, change the mouse // action actionDragFloatingPane so that subsequent // EVT_MOTION() events will move the floating pane @@ -3413,8 +3412,8 @@ void wxFrameManager::OnMotion(wxMouseEvent& event) m_action = actionDragFloatingPane; m_action_window = pane.frame; } - } - else + } + else { wxDockUIPart* part = HitTest(event.GetX(), event.GetY()); if (part && part->type == wxDockUIPart::typePaneButton) @@ -3457,8 +3456,8 @@ void wxFrameManager::OnLeaveWindow(wxMouseEvent& WXUNUSED(event)) void wxFrameManager::OnChildFocus(wxChildFocusEvent& event) { - // when a child pane has it's focus set, we should change the - // pane's active state to reflect this. (this is only true if + // when a child pane has it's focus set, we should change the + // pane's active state to reflect this. (this is only true if // active panes are allowed by the owner) if (GetFlags() & wxAUI_MGR_ALLOW_ACTIVE_PANE) { @@ -3476,7 +3475,7 @@ void wxFrameManager::OnChildFocus(wxChildFocusEvent& event) void wxFrameManager::OnPaneButton(wxFrameManagerEvent& event) { wxPaneInfo& pane = *(event.pane); - + if (event.button == wxPaneInfo::buttonClose) { pane.Hide(); -- 2.47.2