X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8907154c1a8a6882c6797d1f16393ddfb23e7f3a..4f0eda0e6ee3c289a932ef5fd224ea1d67bb086a:/src/univ/topluniv.cpp diff --git a/src/univ/topluniv.cpp b/src/univ/topluniv.cpp index 952f36201b..ec7f1d6652 100644 --- a/src/univ/topluniv.cpp +++ b/src/univ/topluniv.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: topluniv.cpp +// Name: src/univ/topluniv.cpp // Author: Vaclav Slavik // Id: $Id$ // Copyright: (c) 2001-2002 SciTech Software, Inc. (www.scitechsoft.com) @@ -18,20 +18,20 @@ #include "wx/wxprec.h" #ifdef __BORLANDC__ -#pragma hdrstop + #pragma hdrstop #endif -#include "wx/defs.h" +#include "wx/toplevel.h" #ifndef WX_PRECOMP #include "wx/dcclient.h" #include "wx/settings.h" + #include "wx/bitmap.h" + #include "wx/image.h" + #include "wx/frame.h" #endif -#include "wx/toplevel.h" #include "wx/univ/renderer.h" -#include "wx/bitmap.h" -#include "wx/image.h" #include "wx/cshelp.h" #include "wx/evtloop.h" @@ -76,8 +76,8 @@ bool wxTopLevelWindow::Create(wxWindow *parent, if ( ms_drawDecorations == -1 ) { - ms_drawDecorations = - !wxSystemSettings::HasFeature(wxSYS_CAN_DRAW_FRAME_DECORATIONS) + ms_drawDecorations = + !wxSystemSettings::HasFeature(wxSYS_CAN_DRAW_FRAME_DECORATIONS) || wxGetEnv(wxT("WXDECOR"), NULL); // FIXME -- wxUniv should provide a way to force non-native decorations! // $WXDECOR is just a hack in absence of better wxUniv solution @@ -96,10 +96,9 @@ bool wxTopLevelWindow::Create(wxWindow *parent, exstyleOrig = GetExtraStyle(); style &= ~(wxCAPTION | wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxSYSTEM_MENU | wxRESIZE_BORDER | wxFRAME_TOOL_WINDOW | - wxTHICK_FRAME); + wxRESIZE_BORDER); style |= wxSIMPLE_BORDER; - SetExtraStyle(exstyleOrig & - ~(wxFRAME_EX_CONTEXTHELP | wxDIALOG_EX_CONTEXTHELP)); + SetExtraStyle(exstyleOrig & ~wxWS_EX_CONTEXTHELP); } if ( !wxTopLevelWindowNative::Create(parent, id, title, pos, @@ -155,13 +154,13 @@ long wxTopLevelWindow::GetDecorationsStyle() const style |= wxTOPLEVEL_BUTTON_MAXIMIZE; } #if wxUSE_HELP - if ( m_exStyle & (wxFRAME_EX_CONTEXTHELP | wxDIALOG_EX_CONTEXTHELP)) + if ( m_exStyle & wxWS_EX_CONTEXTHELP) style |= wxTOPLEVEL_BUTTON_HELP; #endif } if ( (m_windowStyle & (wxSIMPLE_BORDER | wxNO_BORDER)) == 0 ) style |= wxTOPLEVEL_BORDER; - if ( m_windowStyle & (wxRESIZE_BORDER | wxTHICK_FRAME) ) + if ( m_windowStyle & (wxRESIZE_BORDER | wxRESIZE_BORDER) ) style |= wxTOPLEVEL_RESIZEABLE; if ( IsMaximized() ) @@ -241,12 +240,7 @@ void wxTopLevelWindow::OnNcPaint(wxNcPaintEvent& event) else { // get the window rect - wxRect rect; - wxSize size = GetSize(); - rect.x = - rect.y = 0; - rect.width = size.x; - rect.height = size.y; + wxRect rect(GetSize()); wxWindowDC dc(this); m_renderer->DrawFrameTitleBar(dc, rect, @@ -311,12 +305,14 @@ void wxTopLevelWindow::SetIcons(const wxIconBundle& icons) m_titlebarIcon = wxNullIcon; else if ( bmp1.GetWidth() == size.x && bmp1.GetHeight() == size.y ) m_titlebarIcon = icon; +#if wxUSE_IMAGE else { wxImage img = bmp1.ConvertToImage(); img.Rescale(size.x, size.y); m_titlebarIcon.CopyFromBitmap(wxBitmap(img)); } +#endif // wxUSE_IMAGE } } } @@ -350,14 +346,10 @@ static bool wxGetResizingCursor(long hitTestResult, wxCursor& cursor) break; default: return false; - #if 0 - // not rachable due to earlier return - break; - #endif } return true; } - + return false; } @@ -381,7 +373,7 @@ class wxInteractiveMoveHandler : public wxEvtHandler { public: wxInteractiveMoveHandler(wxInteractiveMoveData& data) : m_data(data) {} - + private: DECLARE_EVENT_TABLE() void OnMouseMove(wxMouseEvent& event); @@ -400,7 +392,7 @@ BEGIN_EVENT_TABLE(wxInteractiveMoveHandler, wxEvtHandler) END_EVENT_TABLE() -static inline LINKAGEMODE +static inline LINKAGEMODE void wxApplyResize(wxInteractiveMoveData& data, const wxPoint& diff) { if ( data.m_flags & wxINTERACTIVE_RESIZE_W ) @@ -421,7 +413,7 @@ void wxApplyResize(wxInteractiveMoveData& data, const wxPoint& diff) { data.m_rect.height += diff.y; } - + if ( data.m_minSize.x != wxDefaultCoord && data.m_rect.width < data.m_minSize.x ) { if ( data.m_flags & wxINTERACTIVE_RESIZE_W ) @@ -481,7 +473,7 @@ void wxInteractiveMoveHandler::OnMouseDown(wxMouseEvent& WXUNUSED(event)) void wxInteractiveMoveHandler::OnKeyDown(wxKeyEvent& event) { wxPoint diff(wxDefaultCoord,wxDefaultCoord); - + switch ( event.GetKeyCode() ) { case WXK_UP: diff = wxPoint(0, -16); break; @@ -496,7 +488,7 @@ void wxInteractiveMoveHandler::OnKeyDown(wxKeyEvent& event) m_data.m_evtLoop->Exit(); return; } - + if ( diff.x != wxDefaultCoord ) { if ( m_data.m_flags & wxINTERACTIVE_WAIT_FOR_INPUT ) @@ -510,14 +502,14 @@ void wxInteractiveMoveHandler::OnKeyDown(wxKeyEvent& event) if ( m_data.m_flags & wxINTERACTIVE_MOVE ) { - m_data.m_pos = m_data.m_window->GetPosition() + + m_data.m_pos = m_data.m_window->GetPosition() + wxPoint(m_data.m_window->GetSize().x/2, 8); } } wxPoint warp; bool changeCur = false; - + if ( m_data.m_flags & wxINTERACTIVE_MOVE ) { m_data.m_rect.Offset(diff); @@ -526,7 +518,7 @@ void wxInteractiveMoveHandler::OnKeyDown(wxKeyEvent& event) } else /* wxINTERACTIVE_RESIZE */ { - if ( !(m_data.m_flags & + if ( !(m_data.m_flags & (wxINTERACTIVE_RESIZE_N | wxINTERACTIVE_RESIZE_S)) ) { if ( diff.y < 0 ) @@ -543,7 +535,7 @@ void wxInteractiveMoveHandler::OnKeyDown(wxKeyEvent& event) changeCur = true; } } - if ( !(m_data.m_flags & + if ( !(m_data.m_flags & (wxINTERACTIVE_RESIZE_W | wxINTERACTIVE_RESIZE_E)) ) { if ( diff.x < 0 ) @@ -608,17 +600,17 @@ void wxTopLevelWindow::InteractiveMove(int flags) wxASSERT_MSG( !((flags & wxINTERACTIVE_MOVE) && (flags & wxINTERACTIVE_RESIZE)), wxT("can't move and resize window at the same time") ); - wxASSERT_MSG( !(flags & wxINTERACTIVE_RESIZE) || - (flags & wxINTERACTIVE_WAIT_FOR_INPUT) || + wxASSERT_MSG( !(flags & wxINTERACTIVE_RESIZE) || + (flags & wxINTERACTIVE_WAIT_FOR_INPUT) || (flags & wxINTERACTIVE_RESIZE_DIR), wxT("direction of resizing not specified") ); wxInteractiveMoveData data; wxEventLoop loop; - + SetFocus(); -#ifndef __WXGTK__ +#ifndef __WXGTK__ if ( flags & wxINTERACTIVE_WAIT_FOR_INPUT ) { wxCursor sizingCursor(wxCURSOR_SIZING); @@ -754,7 +746,7 @@ bool wxTopLevelWindow::PerformAction(const wxControlAction& action, void wxTopLevelWindow::OnSystemMenu(wxCommandEvent& event) { bool ret = true; - + switch (event.GetId()) { case wxID_CLOSE_FRAME: @@ -783,7 +775,7 @@ void wxTopLevelWindow::OnSystemMenu(wxCommandEvent& event) default: ret = false; } - + if ( !ret ) event.Skip(); }