• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/amule/wxWidgets-2.8.12/contrib/samples/ogl/ogledit/
1/////////////////////////////////////////////////////////////////////////////
2// Name:        samples/ogl/ogledit/palette.cpp
3// Purpose:     OGLEdit palette
4// Author:      Julian Smart
5// Modified by:
6// Created:     12/07/98
7// RCS-ID:      $Id: palette.cpp 37440 2006-02-10 11:59:52Z ABX $
8// Copyright:   (c) Julian Smart
9// Licence:     wxWindows licence
10/////////////////////////////////////////////////////////////////////////////
11
12// For compilers that support precompilation, includes "wx.h".
13#include "wx/wxprec.h"
14
15#ifdef __BORLANDC__
16#pragma hdrstop
17#endif
18
19#ifndef WX_PRECOMP
20#include "wx/wx.h"
21#endif
22
23#include "wx/toolbar.h"
24
25#include <ctype.h>
26#include <stdlib.h>
27#include <math.h>
28
29#include "doc.h"
30#include "view.h"
31#include "ogledit.h"
32#include "palette.h"
33
34// Include pixmaps
35#include "bitmaps/arrow.xpm"
36#include "bitmaps/tool1.xpm"
37#include "bitmaps/tool2.xpm"
38#include "bitmaps/tool3.xpm"
39#include "bitmaps/tool4.xpm"
40
41/*
42 * Object editor tool palette
43 *
44 */
45
46EditorToolPalette::EditorToolPalette(wxWindow* parent, const wxPoint& pos, const wxSize& size,
47            long style):
48  TOOLPALETTECLASS(parent, wxID_ANY, pos, size, style)
49{
50    currentlySelected = -1;
51}
52
53bool EditorToolPalette::OnLeftClick(int toolIndex, bool toggled)
54{
55  // BEGIN mutual exclusivity code
56  if (toggled && (currentlySelected != -1) && (toolIndex != currentlySelected))
57    ToggleTool(currentlySelected, false);
58
59  if (toggled)
60    currentlySelected = toolIndex;
61  else if (currentlySelected == toolIndex)
62    currentlySelected = -1;
63  //  END mutual exclusivity code
64
65  return true;
66}
67
68void EditorToolPalette::OnMouseEnter(int WXUNUSED(toolIndex))
69{
70}
71
72void EditorToolPalette::SetSize(int x, int y, int width, int height, int sizeFlags)
73{
74  TOOLPALETTECLASS::SetSize(x, y, width, height, sizeFlags);
75}
76
77EditorToolPalette *MyApp::CreatePalette(wxFrame *parent)
78{
79  // Load palette bitmaps.
80  wxBitmap PaletteTool1(tool1_xpm);
81  wxBitmap PaletteTool2(tool2_xpm);
82  wxBitmap PaletteTool3(tool3_xpm);
83  wxBitmap PaletteTool4(tool4_xpm);
84  wxBitmap PaletteArrow(arrow_xpm);
85
86  EditorToolPalette *palette = new EditorToolPalette(parent, wxPoint(0, 0), wxDefaultSize,
87      wxTB_VERTICAL);
88
89  palette->SetMargins(2, 2);
90  palette->SetToolBitmapSize(wxSize(22, 22));
91
92  palette->AddTool(PALETTE_ARROW, PaletteArrow, wxNullBitmap, true, 0, wxDefaultCoord, NULL, _T("Pointer"));
93  palette->AddTool(PALETTE_TOOL1, PaletteTool1, wxNullBitmap, true, 0, wxDefaultCoord, NULL, _T("Tool 1"));
94  palette->AddTool(PALETTE_TOOL2, PaletteTool2, wxNullBitmap, true, 0, wxDefaultCoord, NULL, _T("Tool 2"));
95  palette->AddTool(PALETTE_TOOL3, PaletteTool3, wxNullBitmap, true, 0, wxDefaultCoord, NULL, _T("Tool 3"));
96  palette->AddTool(PALETTE_TOOL4, PaletteTool4, wxNullBitmap, true, 0, wxDefaultCoord, NULL, _T("Tool 4"));
97
98  palette->Realize();
99
100  palette->ToggleTool(PALETTE_ARROW, true);
101  palette->currentlySelected = PALETTE_ARROW;
102  return palette;
103}
104