a671974bab
See #17454
106 lines
3.2 KiB
C++
106 lines
3.2 KiB
C++
///////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/ribbon/page.h
|
|
// Purpose: Container for ribbon-bar-style interface panels
|
|
// Author: Peter Cawley
|
|
// Modified by:
|
|
// Created: 2009-05-25
|
|
// Copyright: (C) Peter Cawley
|
|
// Licence: wxWindows licence
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_RIBBON_PAGE_H_
|
|
#define _WX_RIBBON_PAGE_H_
|
|
|
|
#include "wx/defs.h"
|
|
|
|
#if wxUSE_RIBBON
|
|
|
|
#include "wx/ribbon/control.h"
|
|
#include "wx/ribbon/panel.h"
|
|
#include "wx/bitmap.h"
|
|
|
|
class wxRibbonBar;
|
|
class wxRibbonPageScrollButton;
|
|
|
|
class WXDLLIMPEXP_RIBBON wxRibbonPage : public wxRibbonControl
|
|
{
|
|
public:
|
|
wxRibbonPage();
|
|
|
|
wxRibbonPage(wxRibbonBar* parent,
|
|
wxWindowID id = wxID_ANY,
|
|
const wxString& label = wxEmptyString,
|
|
const wxBitmap& icon = wxNullBitmap,
|
|
long style = 0);
|
|
|
|
virtual ~wxRibbonPage();
|
|
|
|
bool Create(wxRibbonBar* parent,
|
|
wxWindowID id = wxID_ANY,
|
|
const wxString& label = wxEmptyString,
|
|
const wxBitmap& icon = wxNullBitmap,
|
|
long style = 0);
|
|
|
|
void SetArtProvider(wxRibbonArtProvider* art) wxOVERRIDE;
|
|
|
|
wxBitmap& GetIcon() {return m_icon;}
|
|
virtual wxSize GetMinSize() const wxOVERRIDE;
|
|
void SetSizeWithScrollButtonAdjustment(int x, int y, int width, int height);
|
|
void AdjustRectToIncludeScrollButtons(wxRect* rect) const;
|
|
|
|
bool DismissExpandedPanel();
|
|
|
|
virtual bool Realize() wxOVERRIDE;
|
|
virtual bool Show(bool show = true) wxOVERRIDE;
|
|
virtual bool Layout() wxOVERRIDE;
|
|
virtual bool ScrollLines(int lines) wxOVERRIDE;
|
|
bool ScrollPixels(int pixels);
|
|
bool ScrollSections(int sections);
|
|
|
|
wxOrientation GetMajorAxis() const;
|
|
|
|
virtual void RemoveChild(wxWindowBase *child) wxOVERRIDE;
|
|
|
|
void HideIfExpanded();
|
|
|
|
protected:
|
|
virtual wxSize DoGetBestSize() const wxOVERRIDE;
|
|
virtual wxBorder GetDefaultBorder() const wxOVERRIDE { return wxBORDER_NONE; }
|
|
|
|
void DoSetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO) wxOVERRIDE;
|
|
bool DoActualLayout();
|
|
void OnEraseBackground(wxEraseEvent& evt);
|
|
void OnPaint(wxPaintEvent& evt);
|
|
void OnSize(wxSizeEvent& evt);
|
|
|
|
bool ExpandPanels(wxOrientation direction, int maximum_amount);
|
|
bool CollapsePanels(wxOrientation direction, int minimum_amount);
|
|
bool ShowScrollButtons();
|
|
void HideScrollButtons();
|
|
|
|
void CommonInit(const wxString& label, const wxBitmap& icon);
|
|
void PopulateSizeCalcArray(wxSize (wxWindow::*get_size)(void) const);
|
|
|
|
wxArrayRibbonControl m_collapse_stack;
|
|
wxBitmap m_icon;
|
|
wxSize m_old_size;
|
|
// NB: Scroll button windows are siblings rather than children (to get correct clipping of children)
|
|
wxRibbonPageScrollButton* m_scroll_left_btn;
|
|
wxRibbonPageScrollButton* m_scroll_right_btn;
|
|
wxSize* m_size_calc_array;
|
|
size_t m_size_calc_array_size;
|
|
int m_scroll_amount;
|
|
int m_scroll_amount_limit;
|
|
int m_size_in_major_axis_for_children;
|
|
bool m_scroll_buttons_visible;
|
|
|
|
#ifndef SWIG
|
|
wxDECLARE_CLASS(wxRibbonPage);
|
|
wxDECLARE_EVENT_TABLE();
|
|
#endif
|
|
};
|
|
|
|
#endif // wxUSE_RIBBON
|
|
|
|
#endif // _WX_RIBBON_PAGE_H_
|