📄 testview1.cpp
字号:
// TestView1.cpp//// test view for the wGui library////// Copyright (c) 2002 Rob Wiskow// rob-dev@boxedchaos.com//// This library is free software; you can redistribute it and/or// modify it under the terms of the GNU Lesser General Public// License as published by the Free Software Foundation; either// version 2.1 of the License, or (at your option) any later version.//// This library is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU// Lesser General Public License for more details.//// You should have received a copy of the GNU Lesser General Public// License along with this library; if not, write to the Free Software// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA//#include "TestView1.h"const long int CLEAR_EDIT_BOX_1 = 10;const long int FILL_EDIT_BOX_1 = 11;const long int CLEAR_EDIT_BOX_2 = 12;const long int FILL_EDIT_BOX_2 = 13;const long int EXIT_APP = 14;const long int NEXT_BUTTON_PICTURE = 15;CTestWindow::CTestWindow(const wGui::CRect& WindowRect, wGui::CWindow* pParent) : CWindow(WindowRect, pParent){ m_ClientRect.Grow(-1);}void CTestWindow::Draw(void) const{ CWindow::Draw(); wGui::CPainter Painter(m_pSDLSurface); Painter.DrawRect(m_WindowRect, false, wGui::COLOR_WHITE); Painter.DrawRect(GetClientRect(), false, wGui::COLOR_RED);}CTestView::CTestView(void) : wGui::CView(wGui::CRect(0, 0, 700, 500), "Test App 1", true), m_iClickCount(0), m_eCurrentPicture(wGui::WGRES_UP_ARROW_BITMAP){ SetWindowText(std::string("Test App 1 - wGui version ") + wGui::CwgStringResourceHandle(wGui::WGRES_VERSION_STRING).String()); wGui::CMessageServer::Instance().RegisterMessageClient(this, wGui::CMessage::CTRL_VALUECHANGE); wGui::CMessageServer::Instance().RegisterMessageClient(this, wGui::CMessage::CTRL_LCLICK); wGui::CMessageServer::Instance().RegisterMessageClient(this, wGui::CMessage::CTRL_RCLICK); wGui::CMessageServer::Instance().RegisterMessageClient(this, wGui::CMessage::CTRL_RESIZE); wGui::CMessageServer::Instance().RegisterMessageClient(this, wGui::CMessage::CTRL_TIMER); m_pTimer = new wGui::CTimer(this); AttachMenu(new wGui::CMenu(wGui::CRect(0, 0, 80, 22), this)); wGui::CPopupMenu* pContextSubmenu = new wGui::CPopupMenu(wGui::CRect(0, 0, 140, 50), this); pContextSubmenu->InsertMenuItem(wGui::SMenuItem("Do Something")); pContextSubmenu->InsertMenuItem(wGui::SMenuItem("Do Something Else")); pContextSubmenu->InsertMenuItem(wGui::SMenuItem()); // instert a spacer pContextSubmenu->InsertMenuItem(wGui::SMenuItem("Exit", EXIT_APP)); GetMenu()->InsertMenuItem(wGui::SMenuItem("File", 0, pContextSubmenu)); pContextSubmenu = new wGui::CPopupMenu(wGui::CRect(0, 0, 70, 50), this); GetMenu()->InsertMenuItem(wGui::SMenuItem("Edit", 0, pContextSubmenu)); GetMenu()->InsertMenuItem(wGui::SMenuItem()); pContextSubmenu = new wGui::CPopupMenu(wGui::CRect(0, 0, 70, 50), this); GetMenu()->InsertMenuItem(wGui::SMenuItem("Help", 0, pContextSubmenu)); m_pButton = new wGui::CButton(ClientToScreen(wGui::CRect(20, 40, 100, 60)), this, "Test Button"); m_pButton2 = new wGui::CButton(ClientToScreen(wGui::CRect(130, 40, 210, 60)), this, "Disabled"); m_pButton2->SetButtonState(wGui::CButton::DISABLED); m_pBtnPass = new wGui::CButton(ClientToScreen(wGui::CRect(330, 280, 400, 300)), this, "Show Pass"); m_pButtonCopyText = new wGui::CButton(ClientToScreen(wGui::CRect(30, 180, 160, 200)), this, "Copy Selected Text"); m_pProgressBar = new wGui::CProgress(ClientToScreen(wGui::CRect(20, 70, 210, 90)), this); m_pProgressBar->SetLimits(0, 50); m_pBtnQuit = new wGui::CButton(ClientToScreen(wGui::CRect(525, 10, 600, 30)), this, "Quit"); m_pBtnWaitCursor = new wGui::CButton(ClientToScreen(wGui::CRect(500, 50, 600, 70)), this, "Wait Cursor"); m_pBtnPointerCursor = new wGui::CButton(ClientToScreen(wGui::CRect(500, 80, 600, 100)), this, "Pointer Cursor"); m_pBtnDefaultCursor = new wGui::CButton(ClientToScreen(wGui::CRect(500, 110, 600, 130)), this, "Default Cursor"); new wGui::CLabel(ClientToScreen(wGui::CRect(20, 95, 90, 110)), this, "Test Label"); m_pEditBox = new wGui::CEditBox(ClientToScreen(wGui::CRect(20, 120, 200, 140)), this); m_pEditBox->SetWindowText("Edit This is a really long message to see what happens when there is a long message in an editbox."); m_pEditBox2 = new wGui::CEditBox(ClientToScreen(wGui::CRect(20, 150, 200, 170)), this); m_pEditBox2->SetWindowText("Edit2"); m_pEditBox3 = new wGui::CEditBox(ClientToScreen(wGui::CRect(20, 210, 200, 230)), this); m_pEditBox3->SetWindowText("ReadOnly Edit Box"); m_pEditBox3->SetReadOnly(true); m_pPassBox = new wGui::CEditBox(ClientToScreen(wGui::CRect(225, 280, 325, 300)), this); m_pPassBox->SetUsePasswordMask(true); m_pPassShow = new wGui::CEditBox(ClientToScreen(wGui::CRect(225, 305, 325, 325)), this); m_pGroupBox = new wGui::CGroupBox(ClientToScreen(wGui::CRect(225, 160, 470, 260)), this, "GroupBox"); m_pBigassEditBox = new wGui::CEditBox(ClientToScreen(wGui::CRect(240, 175, 460, 210)), m_pGroupBox, wGui::CApplication::Instance()->GetFontEngine("Vera.ttf", 25)); m_pBigassEditBox->SetWindowText("Big box to test stuff"); new wGui::CToolTip(m_pBigassEditBox, "This is a Big Ass Editbox"); m_pTimerButton = new wGui::CButton(ClientToScreen(wGui::CRect(20, 250, 120, 270)), this, "Timer Stopped"); m_pTimerLabel = new wGui::CLabel(ClientToScreen(wGui::CRect(140, 250, 210, 270)), this, "Count: 0"); m_pCheckBox = new wGui::CCheckBox(ClientToScreen(wGui::CRect(224, 124, 236, 136)), this); new wGui::CLabel(ClientToScreen(wGui::CRect(245, 120, 380, 140)), this, "Read-Only EditBox2"); m_pVScrollBar = new wGui::CScrollBar( wGui::CRect(m_ClientRect.Right() - 12, m_ClientRect.Top(), m_ClientRect.Right(), m_ClientRect.Bottom() - 12), this, wGui::CScrollBar::VERTICAL); m_pHScrollBar = new wGui::CScrollBar( wGui::CRect(m_ClientRect.Left(), m_ClientRect.Bottom() - 12, m_ClientRect.Right() - 12, m_ClientRect.Bottom()), this, wGui::CScrollBar::HORIZONTAL); m_pTestWindow = new CTestWindow(ClientToScreen(wGui::CRect(240, 10, 340, 110)), this); new wGui::CToolTip(m_pTestWindow, "A line drawing test"); m_pPicture = new wGui::CPicture(ClientToScreen(wGui::CRect(370, 10, 470, 110)), this, "testpic.bmp", true); new wGui::CToolTip(m_pPicture, "A bitmap loading test"); m_pToolBar = new wGui::CToolBar(ClientToScreen(wGui::CRect(0, 0, 170, 24)), this); wGui::CButton* pButton = new wGui::CPictureButton(wGui::CRect(0, 0, 20, 20), this, wGui::CwgBitmapResourceHandle(wGui::WGRES_UP_ARROW_BITMAP)); new wGui::CToolTip(pButton, "Clear Edit Box 1"); m_pToolBar->InsertButton(pButton, CLEAR_EDIT_BOX_1); pButton = new wGui::CPictureButton(wGui::CRect(0, 0, 20, 20), this, wGui::CwgBitmapResourceHandle(wGui::WGRES_DOWN_ARROW_BITMAP)); new wGui::CToolTip(pButton, "Fill Edit Box 1"); m_pToolBar->InsertButton(pButton, FILL_EDIT_BOX_1); m_pToolBar->InsertButton(0); // Insert a spacer pButton = new wGui::CPictureButton(wGui::CRect(0, 0, 20, 20), this, wGui::CwgBitmapResourceHandle(wGui::WGRES_LEFT_ARROW_BITMAP)); new wGui::CToolTip(pButton, "Clear Edit Box 2"); m_pToolBar->InsertButton(pButton, CLEAR_EDIT_BOX_2); pButton = new wGui::CPictureButton(wGui::CRect(0, 0, 20, 20), this, wGui::CwgBitmapResourceHandle(wGui::WGRES_RIGHT_ARROW_BITMAP)); new wGui::CToolTip(pButton, "Fill Edit Box 2"); m_pToolBar->InsertButton(pButton, FILL_EDIT_BOX_2); m_pToolBar->InsertButton(0); // Insert a spacer pButton = new wGui::CPictureButton(wGui::CRect(0, 0, 20, 20), this, wGui::CwgBitmapResourceHandle(wGui::WGRES_X_BITMAP)); new wGui::CToolTip(pButton, "Exit App"); m_pToolBar->InsertButton(pButton, EXIT_APP); m_pToolBar->InsertButton(0); // Insert a spacer m_pBtnPictureButton = new wGui::CPictureButton(wGui::CRect(0, 0, 20, 20), this, wGui::CwgBitmapResourceHandle(m_eCurrentPicture)); new wGui::CToolTip(m_pBtnPictureButton, "Click to animate"); m_pToolBar->InsertButton(m_pBtnPictureButton, NEXT_BUTTON_PICTURE); m_pContextMenu = new wGui::CPopupMenu(wGui::CRect(0, 0, 120, 50), this); m_pContextMenu->InsertMenuItem(wGui::SMenuItem("Menu Item 1")); m_pContextMenu->InsertMenuItem(wGui::SMenuItem("Menu Item 2")); m_pContextMenu->InsertMenuItem(wGui::SMenuItem("Menu Item 3")); pContextSubmenu = new wGui::CPopupMenu(wGui::CRect(0, 0, 80, 50), m_pContextMenu); pContextSubmenu->InsertMenuItem(wGui::SMenuItem("Clear", CLEAR_EDIT_BOX_1)); pContextSubmenu->InsertMenuItem(wGui::SMenuItem("Fill", FILL_EDIT_BOX_1)); m_pContextMenu->InsertMenuItem(wGui::SMenuItem("Edit Box 1", 0, pContextSubmenu)); pContextSubmenu = new wGui::CPopupMenu(wGui::CRect(0, 0, 80, 50), m_pContextMenu); pContextSubmenu->InsertMenuItem(wGui::SMenuItem("Clear", CLEAR_EDIT_BOX_2)); pContextSubmenu->InsertMenuItem(wGui::SMenuItem("Fill", FILL_EDIT_BOX_2)); m_pContextMenu->InsertMenuItem(wGui::SMenuItem("Edit Box 2", 0, pContextSubmenu)); pContextSubmenu = new wGui::CPopupMenu(wGui::CRect(0, 0, 140, 50), m_pContextMenu); m_pContextMenu->InsertMenuItem(wGui::SMenuItem("Empty submenu", 0, pContextSubmenu)); wGui::CPopupMenu* pContextSubmenu2 = new wGui::CPopupMenu(wGui::CRect(0, 0, 140, 50), pContextSubmenu); pContextSubmenu->InsertMenuItem(wGui::SMenuItem("Empty submenu", 0, pContextSubmenu2)); wGui::CPopupMenu* pContextSubmenu3 = new wGui::CPopupMenu(wGui::CRect(0, 0, 140, 50), pContextSubmenu2); pContextSubmenu2->InsertMenuItem(wGui::SMenuItem("Empty submenu", 0, pContextSubmenu3)); wGui::CPopupMenu* pContextSubmenu4 = new wGui::CPopupMenu(wGui::CRect(0, 0, 140, 50), pContextSubmenu3); pContextSubmenu3->InsertMenuItem(wGui::SMenuItem("Empty submenu", 0, pContextSubmenu4)); m_pDropDown = new wGui::CDropDown(ClientToScreen(wGui::CRect(240, 230, 430, 248)), m_pGroupBox); m_pDropDown->AddItem(wGui::SListItem("Item1")); m_pDropDown->AddItem(wGui::SListItem("Item2", 0, wGui::COLOR_BLUE)); m_pDropDown->AddItem(wGui::SListItem("Item3", 0, wGui::COLOR_RED)); m_pDropDown->AddItem(wGui::SListItem("Item4")); m_pListBox = new wGui::CListBox(ClientToScreen(wGui::CRect(20, 290, 200, 360)), this); m_pListBox->AddItem(wGui::SListItem("Item1")); m_pListBox->AddItem(wGui::SListItem("Item2", 0, wGui::COLOR_BLUE)); m_pListBox->AddItem(wGui::SListItem("Item3", 0, wGui::COLOR_RED)); m_pListBox->AddItem(wGui::SListItem("Item4")); m_pListBox->AddItem(wGui::SListItem("Item5")); m_pListBox->AddItem(wGui::SListItem("Item6", 0, wGui::COLOR_GRAY)); m_pListBox->AddItem(wGui::SListItem("Lets")); m_pListBox->AddItem(wGui::SListItem("Add")); m_pListBox->AddItem(wGui::SListItem("A Few")); m_pListBox->AddItem(wGui::SListItem("More")); m_pListBox->AddItem(wGui::SListItem("Items")); m_pListBox->AddItem(wGui::SListItem("Shall")); m_pListBox->AddItem(wGui::SListItem("We?"));}void CTestView::Draw(void) const{ CView::Draw(); wGui::CPainter Painter(m_pSDLSurface); Painter.DrawLine(ClientToScreen(wGui::CPoint(250, 80)), ClientToScreen(wGui::CPoint(320, 80))); Painter.DrawLine(ClientToScreen(wGui::CPoint(260, 40)), ClientToScreen(wGui::CPoint(320, 60)), wGui::COLOR_GREEN); Painter.DrawLine(ClientToScreen(wGui::CPoint(320, 40)), ClientToScreen(wGui::CPoint(310, 110)), wGui::COLOR_RED); Painter.DrawLine(ClientToScreen(wGui::CPoint(260, 40)), ClientToScreen(wGui::CPoint(260, 110)), wGui::COLOR_BLUE);}bool CTestView::OnMouseButtonDown(wGui::CPoint Point, unsigned int Button){ bool bResult = false; if (! CView::OnMouseButtonDown(Point, Button) && m_bVisible && (m_WindowRect.HitTest(Point) == wGui::CRect::RELPOS_INSIDE) && (Button == wGui::CMouseMessage::RIGHT))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -