⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 multicell.h

📁 wxGTK 是 wxWidgets 的 linux GTK+ (>2.2.3)版本。wxWidgets 是一个跨平台的 GUI 框架
💻 H
字号:
/////////////////////////////////////////////////////////////////////////////// Name:        multicell.h// Purpose:     provide two new classes for layout, wxMultiCellSizer and wxMultiCellCanvas// Author:      Jonathan Bayer// Modified by:// Created:// RCS-ID:      $Id: multicell.h,v 1.12 2006/04/26 16:27:16 PC Exp $// Copyright:   (c) Jonathan Bayer// Licence:     wxWindows licence/////////////////////////////////////////////////////////////////////////////// This was inspired by the gbsizer class written by Alex Andruschak#ifndef __WX_MULTICELL_H__#define __WX_MULTICELL_H__#include "wx/gizmos/gizmos.h"// ----------------------------------------------------------------------------// headers// ----------------------------------------------------------------------------// The classes are derived from wxSizer#include "wx/sizer.h"// ----------------------------------------------------------------------------// constants// ----------------------------------------------------------------------------enum wxResizable{    wxNOT_RESIZABLE =           0x00,    wxHORIZONTAL_RESIZABLE =    0x01,    wxVERTICAL_RESIZABLE =      0x10,    wxRESIZABLE =               0x11};//---------------------------------------------------------------------------// classes//---------------------------------------------------------------------------//---------------------------------------------------------------------------// wxMultiCellItemHandle//---------------------------------------------------------------------------class WXDLLIMPEXP_GIZMOS wxMultiCellItemHandle: public wxObject{    DECLARE_CLASS(wxMultiCellItemHandle)protected:    int             m_column;    int             m_row;    int             m_width;    int             m_height;    wxResizable     m_style;    wxSize          m_fixedSize;    int             m_alignment;    wxSize          m_weight;public:    wxMultiCellItemHandle( int row, int column, int height = 1, int width = 1, wxSize size = wxDefaultSize, wxResizable style = wxNOT_RESIZABLE, wxSize weight = wxSize(1,1), int align = wxALIGN_NOT);    wxMultiCellItemHandle( int row, int column, wxSize size, wxResizable style = wxNOT_RESIZABLE, wxSize weight = wxSize(1,1), int align = wxALIGN_NOT);    wxMultiCellItemHandle( int row, int column, wxResizable style, wxSize weight = wxSize(1,1), int align = wxALIGN_NOT);    int             GetColumn();    int             GetRow();    int             GetWidth();    int             GetHeight();    wxResizable     GetStyle();    wxSize          GetLocalSize();    int             GetAlignment();    wxSize          GetWeight();private:    void Initialize( int row, int column, int height = 1, int width = 1, wxSize size = wxDefaultSize, wxResizable style = wxNOT_RESIZABLE, wxSize weight = wxSize(1,1), int align = wxALIGN_NOT);};//---------------------------------------------------------------------------// wxMultiCellSizer//---------------------------------------------------------------------------class WXDLLIMPEXP_GIZMOS wxMultiCellSizer : virtual public wxSizer{    DECLARE_CLASS(wxMultiCellSizer)protected:    wxSize m_cell_count;public:    wxMultiCellSizer(wxSize & size);    wxMultiCellSizer(int rows, int cols);    ~wxMultiCellSizer();    virtual void RecalcSizes();    virtual wxSize CalcMin();    bool SetDefaultCellSize(wxSize size);    bool SetColumnWidth(int column, int colSize = 5, bool expandable = false);    bool SetRowHeight(int row, int rowSize = 5, bool expandable = false);    bool EnableGridLines(wxWindow *win);    bool SetGridPen(const wxPen *pen);    void OnPaint(wxDC& dc);private:    void GetMinimums();    int Sum(int *array, int x);private:    int *m_maxHeight;    int *m_maxWidth;    int *m_rowStretch;    int *m_colStretch;    wxSize **m_weights;    wxSize **m_minSizes;    int m_maxWeights;    wxSize m_defaultCellSize;    wxWindow *m_win; // usually used for debugging    const wxPen *m_pen;    void DrawGridLines(wxDC& dc);    void Initialize(wxSize size);};// wxCell is used internally, so we don't need to declare it hereclass wxCell;//---------------------------------------------------------------------------// wxMultiCellCanvas//---------------------------------------------------------------------------class WXDLLIMPEXP_GIZMOS wxMultiCellCanvas : public wxFlexGridSizer{public:    wxMultiCellCanvas(wxWindow *parent, int numRows = 2, int numCols = 2);    void Add(wxWindow *win, unsigned int row, unsigned int col);    void Resize(int numRows, int numCols);    int MaxRows()    {        return m_maxRows;    };    int MaxCols()    {        return m_maxCols;    };    void CalculateConstraints();    void SetMinCellSize(const wxSize size)    {        m_minCellSize = size;    };  /* These are to hide Add() method of parents and to avoid Borland warning about hiding virtual functions */  void Add( wxWindow *window, int proportion = 0, int flag = 0, int border = 0, wxObject* userData = NULL )       { wxFlexGridSizer::Add( window, proportion, flag, border, userData); }  void Add( wxSizer *sizer, int proportion = 0, int flag = 0, int border = 0, wxObject* userData = NULL )       { wxFlexGridSizer::Add( sizer, proportion, flag, border, userData); }  void Add( int width, int height, int proportion = 0, int flag = 0, int border = 0, wxObject* userData = NULL )       { wxFlexGridSizer::Add( width, height, proportion, flag, border, userData); }  void Add( wxSizerItem *item )       { wxFlexGridSizer::Add( item); }private:    wxWindow            *m_parent;    unsigned int         m_maxRows, m_maxCols;    wxSize              m_minCellSize;    wxCell              **m_cells;};#endif/*** End of File ***/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -