PageRenderTime 38ms CodeModel.GetById 11ms RepoModel.GetById 0ms app.codeStats 0ms

/ExtLibs/wxWidgets/src/richtext/richtextsizepage.cpp

https://bitbucket.org/lennonchan/cafu
C++ | 627 lines | 403 code | 138 blank | 86 comment | 53 complexity | c6be5775cdc70d8916a9f0e94bcefc30 MD5 | raw file
  1. /////////////////////////////////////////////////////////////////////////////
  2. // Name: src/richtext/richtextsizepage.cpp
  3. // Purpose:
  4. // Author: Julian Smart
  5. // Modified by:
  6. // Created: 20/10/2010 10:23:24
  7. // RCS-ID:
  8. // Copyright: (c) Julian Smart
  9. // Licence:
  10. /////////////////////////////////////////////////////////////////////////////
  11. #include "wx/richtext/richtextsizepage.h"
  12. ////@begin XPM images
  13. ////@end XPM images
  14. /*!
  15. * wxRichTextSizePage type definition
  16. */
  17. IMPLEMENT_DYNAMIC_CLASS( wxRichTextSizePage, wxRichTextDialogPage )
  18. /*!
  19. * wxRichTextSizePage event table definition
  20. */
  21. BEGIN_EVENT_TABLE( wxRichTextSizePage, wxRichTextDialogPage )
  22. ////@begin wxRichTextSizePage event table entries
  23. EVT_UPDATE_UI( ID_RICHTEXT_WIDTH, wxRichTextSizePage::OnRichtextWidthUpdate )
  24. EVT_UPDATE_UI( ID_RICHTEXT_UNITS_W, wxRichTextSizePage::OnRichtextWidthUpdate )
  25. EVT_UPDATE_UI( ID_RICHTEXT_HEIGHT, wxRichTextSizePage::OnRichtextHeightUpdate )
  26. EVT_UPDATE_UI( ID_RICHTEXT_UNITS_H, wxRichTextSizePage::OnRichtextHeightUpdate )
  27. EVT_UPDATE_UI( ID_RICHTEXT_VERTICAL_ALIGNMENT_COMBOBOX, wxRichTextSizePage::OnRichtextVerticalAlignmentComboboxUpdate )
  28. EVT_UPDATE_UI( ID_RICHTEXT_OFFSET, wxRichTextSizePage::OnRichtextOffsetUpdate )
  29. EVT_UPDATE_UI( ID_RICHTEXT_OFFSET_UNITS, wxRichTextSizePage::OnRichtextOffsetUpdate )
  30. EVT_BUTTON( ID_RICHTEXT_PARA_UP, wxRichTextSizePage::OnRichtextParaUpClick )
  31. EVT_BUTTON( ID_RICHTEXT_PARA_DOWN, wxRichTextSizePage::OnRichtextParaDownClick )
  32. ////@end wxRichTextSizePage event table entries
  33. END_EVENT_TABLE()
  34. IMPLEMENT_HELP_PROVISION(wxRichTextSizePage)
  35. /*!
  36. * wxRichTextSizePage constructors
  37. */
  38. wxRichTextSizePage::wxRichTextSizePage()
  39. {
  40. Init();
  41. }
  42. wxRichTextSizePage::wxRichTextSizePage( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
  43. {
  44. Init();
  45. Create(parent, id, pos, size, style);
  46. }
  47. /*!
  48. * wxRichTextSizePage creator
  49. */
  50. bool wxRichTextSizePage::Create( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
  51. {
  52. ////@begin wxRichTextSizePage creation
  53. wxRichTextDialogPage::Create( parent, id, pos, size, style );
  54. CreateControls();
  55. if (GetSizer())
  56. {
  57. GetSizer()->SetSizeHints(this);
  58. }
  59. Centre();
  60. ////@end wxRichTextSizePage creation
  61. return true;
  62. }
  63. /*!
  64. * wxRichTextSizePage destructor
  65. */
  66. wxRichTextSizePage::~wxRichTextSizePage()
  67. {
  68. ////@begin wxRichTextSizePage destruction
  69. ////@end wxRichTextSizePage destruction
  70. }
  71. /*!
  72. * Member initialisation
  73. */
  74. void wxRichTextSizePage::Init()
  75. {
  76. ////@begin wxRichTextSizePage member initialisation
  77. m_parentSizer = NULL;
  78. m_floatingControls = NULL;
  79. m_float = NULL;
  80. m_widthCheckbox = NULL;
  81. m_width = NULL;
  82. m_unitsW = NULL;
  83. m_heightCheckbox = NULL;
  84. m_height = NULL;
  85. m_unitsH = NULL;
  86. m_alignmentControls = NULL;
  87. m_verticalAlignmentCheckbox = NULL;
  88. m_verticalAlignmentComboBox = NULL;
  89. m_positionControls = NULL;
  90. m_moveObjectParentSizer = NULL;
  91. m_offsetYCheckbox = NULL;
  92. m_offset = NULL;
  93. m_unitsOffset = NULL;
  94. m_moveObjectSizer = NULL;
  95. ////@end wxRichTextSizePage member initialisation
  96. }
  97. /*!
  98. * Control creation for wxRichTextSizePage
  99. */
  100. void wxRichTextSizePage::CreateControls()
  101. {
  102. ////@begin wxRichTextSizePage content construction
  103. wxRichTextSizePage* itemRichTextDialogPage1 = this;
  104. wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
  105. itemRichTextDialogPage1->SetSizer(itemBoxSizer2);
  106. m_parentSizer = new wxBoxSizer(wxVERTICAL);
  107. itemBoxSizer2->Add(m_parentSizer, 0, wxGROW|wxALL, 5);
  108. m_floatingControls = new wxBoxSizer(wxVERTICAL);
  109. m_parentSizer->Add(m_floatingControls, 0, wxGROW, 5);
  110. wxBoxSizer* itemBoxSizer5 = new wxBoxSizer(wxHORIZONTAL);
  111. m_floatingControls->Add(itemBoxSizer5, 0, wxGROW, 5);
  112. wxStaticText* itemStaticText6 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("Floating"), wxDefaultPosition, wxDefaultSize, 0 );
  113. itemStaticText6->SetFont(wxFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetPointSize(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetFamily(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetStyle(), wxBOLD, false, wxT("")));
  114. itemBoxSizer5->Add(itemStaticText6, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
  115. wxStaticLine* itemStaticLine7 = new wxStaticLine( itemRichTextDialogPage1, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
  116. itemBoxSizer5->Add(itemStaticLine7, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
  117. wxBoxSizer* itemBoxSizer8 = new wxBoxSizer(wxHORIZONTAL);
  118. m_floatingControls->Add(itemBoxSizer8, 0, wxGROW, 5);
  119. itemBoxSizer8->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
  120. wxFlexGridSizer* itemFlexGridSizer10 = new wxFlexGridSizer(0, 2, 0, 0);
  121. itemBoxSizer8->Add(itemFlexGridSizer10, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5);
  122. wxStaticText* itemStaticText11 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("&Floating mode:"), wxDefaultPosition, wxDefaultSize, 0 );
  123. itemFlexGridSizer10->Add(itemStaticText11, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
  124. wxArrayString m_floatStrings;
  125. m_floatStrings.Add(_("None"));
  126. m_floatStrings.Add(_("Left"));
  127. m_floatStrings.Add(_("Right"));
  128. m_float = new wxComboBox( itemRichTextDialogPage1, ID_RICHTEXT_FLOATING_MODE, _("None"), wxDefaultPosition, wxSize(80, -1), m_floatStrings, wxCB_READONLY );
  129. m_float->SetStringSelection(_("None"));
  130. m_float->SetHelpText(_("How the object will float relative to the text."));
  131. if (wxRichTextSizePage::ShowToolTips())
  132. m_float->SetToolTip(_("How the object will float relative to the text."));
  133. itemFlexGridSizer10->Add(m_float, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL|wxALL, 5);
  134. wxBoxSizer* itemBoxSizer13 = new wxBoxSizer(wxHORIZONTAL);
  135. m_parentSizer->Add(itemBoxSizer13, 0, wxGROW, 5);
  136. wxStaticText* itemStaticText14 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("Size"), wxDefaultPosition, wxDefaultSize, 0 );
  137. itemStaticText14->SetFont(wxFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetPointSize(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetFamily(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetStyle(), wxBOLD, false, wxT("")));
  138. itemBoxSizer13->Add(itemStaticText14, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
  139. wxStaticLine* itemStaticLine15 = new wxStaticLine( itemRichTextDialogPage1, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
  140. itemBoxSizer13->Add(itemStaticLine15, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
  141. wxBoxSizer* itemBoxSizer16 = new wxBoxSizer(wxHORIZONTAL);
  142. m_parentSizer->Add(itemBoxSizer16, 0, wxGROW, 5);
  143. itemBoxSizer16->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
  144. wxFlexGridSizer* itemFlexGridSizer18 = new wxFlexGridSizer(0, 2, 0, 0);
  145. itemBoxSizer16->Add(itemFlexGridSizer18, 0, wxALIGN_CENTER_VERTICAL, 5);
  146. m_widthCheckbox = new wxCheckBox( itemRichTextDialogPage1, ID_RICHTEXT_WIDTH_CHECKBOX, _("&Width:"), wxDefaultPosition, wxDefaultSize, 0 );
  147. m_widthCheckbox->SetValue(false);
  148. m_widthCheckbox->SetHelpText(_("Enable the width value."));
  149. if (wxRichTextSizePage::ShowToolTips())
  150. m_widthCheckbox->SetToolTip(_("Enable the width value."));
  151. itemFlexGridSizer18->Add(m_widthCheckbox, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
  152. wxBoxSizer* itemBoxSizer20 = new wxBoxSizer(wxHORIZONTAL);
  153. itemFlexGridSizer18->Add(itemBoxSizer20, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
  154. m_width = new wxTextCtrl( itemRichTextDialogPage1, ID_RICHTEXT_WIDTH, wxEmptyString, wxDefaultPosition, wxSize(65, -1), 0 );
  155. m_width->SetHelpText(_("The object width."));
  156. if (wxRichTextSizePage::ShowToolTips())
  157. m_width->SetToolTip(_("The object width."));
  158. itemBoxSizer20->Add(m_width, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
  159. wxArrayString m_unitsWStrings;
  160. m_unitsWStrings.Add(_("px"));
  161. m_unitsWStrings.Add(_("cm"));
  162. m_unitsWStrings.Add(_("percent"));
  163. m_unitsW = new wxComboBox( itemRichTextDialogPage1, ID_RICHTEXT_UNITS_W, _("px"), wxDefaultPosition, wxSize(60, -1), m_unitsWStrings, wxCB_READONLY );
  164. m_unitsW->SetStringSelection(_("px"));
  165. m_unitsW->SetHelpText(_("Units for the object width."));
  166. if (wxRichTextSizePage::ShowToolTips())
  167. m_unitsW->SetToolTip(_("Units for the object width."));
  168. itemBoxSizer20->Add(m_unitsW, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
  169. m_heightCheckbox = new wxCheckBox( itemRichTextDialogPage1, ID_RICHTEXT_HEIGHT_CHECKBOX, _("&Height:"), wxDefaultPosition, wxDefaultSize, 0 );
  170. m_heightCheckbox->SetValue(false);
  171. m_heightCheckbox->SetHelpText(_("Enable the height value."));
  172. if (wxRichTextSizePage::ShowToolTips())
  173. m_heightCheckbox->SetToolTip(_("Enable the height value."));
  174. itemFlexGridSizer18->Add(m_heightCheckbox, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
  175. wxBoxSizer* itemBoxSizer24 = new wxBoxSizer(wxHORIZONTAL);
  176. itemFlexGridSizer18->Add(itemBoxSizer24, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
  177. m_height = new wxTextCtrl( itemRichTextDialogPage1, ID_RICHTEXT_HEIGHT, wxEmptyString, wxDefaultPosition, wxSize(65, -1), 0 );
  178. m_height->SetHelpText(_("The object height."));
  179. if (wxRichTextSizePage::ShowToolTips())
  180. m_height->SetToolTip(_("The object height."));
  181. itemBoxSizer24->Add(m_height, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
  182. wxArrayString m_unitsHStrings;
  183. m_unitsHStrings.Add(_("px"));
  184. m_unitsHStrings.Add(_("cm"));
  185. m_unitsHStrings.Add(_("percent"));
  186. m_unitsH = new wxComboBox( itemRichTextDialogPage1, ID_RICHTEXT_UNITS_H, _("px"), wxDefaultPosition, wxSize(60, -1), m_unitsHStrings, wxCB_READONLY );
  187. m_unitsH->SetStringSelection(_("px"));
  188. m_unitsH->SetHelpText(_("Units for the object height."));
  189. if (wxRichTextSizePage::ShowToolTips())
  190. m_unitsH->SetToolTip(_("Units for the object height."));
  191. itemBoxSizer24->Add(m_unitsH, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
  192. m_alignmentControls = new wxBoxSizer(wxVERTICAL);
  193. m_parentSizer->Add(m_alignmentControls, 0, wxGROW, 5);
  194. wxBoxSizer* itemBoxSizer28 = new wxBoxSizer(wxHORIZONTAL);
  195. m_alignmentControls->Add(itemBoxSizer28, 0, wxGROW, 5);
  196. wxStaticText* itemStaticText29 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("Alignment"), wxDefaultPosition, wxDefaultSize, 0 );
  197. itemStaticText29->SetFont(wxFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetPointSize(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetFamily(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetStyle(), wxBOLD, false, wxT("")));
  198. itemBoxSizer28->Add(itemStaticText29, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
  199. wxStaticLine* itemStaticLine30 = new wxStaticLine( itemRichTextDialogPage1, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
  200. itemBoxSizer28->Add(itemStaticLine30, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
  201. wxBoxSizer* itemBoxSizer31 = new wxBoxSizer(wxHORIZONTAL);
  202. m_alignmentControls->Add(itemBoxSizer31, 0, wxGROW, 5);
  203. itemBoxSizer31->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
  204. m_verticalAlignmentCheckbox = new wxCheckBox( itemRichTextDialogPage1, ID_RICHTEXT_VERTICAL_ALIGNMENT_CHECKBOX, _("&Vertical alignment:"), wxDefaultPosition, wxDefaultSize, 0 );
  205. m_verticalAlignmentCheckbox->SetValue(false);
  206. m_verticalAlignmentCheckbox->SetHelpText(_("Enable vertical alignment."));
  207. if (wxRichTextSizePage::ShowToolTips())
  208. m_verticalAlignmentCheckbox->SetToolTip(_("Enable vertical alignment."));
  209. itemBoxSizer31->Add(m_verticalAlignmentCheckbox, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
  210. wxArrayString m_verticalAlignmentComboBoxStrings;
  211. m_verticalAlignmentComboBoxStrings.Add(_("Top"));
  212. m_verticalAlignmentComboBoxStrings.Add(_("Centred"));
  213. m_verticalAlignmentComboBoxStrings.Add(_("Bottom"));
  214. m_verticalAlignmentComboBox = new wxComboBox( itemRichTextDialogPage1, ID_RICHTEXT_VERTICAL_ALIGNMENT_COMBOBOX, _("Top"), wxDefaultPosition, wxDefaultSize, m_verticalAlignmentComboBoxStrings, wxCB_READONLY );
  215. m_verticalAlignmentComboBox->SetStringSelection(_("Top"));
  216. m_verticalAlignmentComboBox->SetHelpText(_("Vertical alignment."));
  217. if (wxRichTextSizePage::ShowToolTips())
  218. m_verticalAlignmentComboBox->SetToolTip(_("Vertical alignment."));
  219. itemBoxSizer31->Add(m_verticalAlignmentComboBox, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
  220. m_positionControls = new wxBoxSizer(wxVERTICAL);
  221. m_parentSizer->Add(m_positionControls, 0, wxGROW, 5);
  222. wxBoxSizer* itemBoxSizer36 = new wxBoxSizer(wxHORIZONTAL);
  223. m_positionControls->Add(itemBoxSizer36, 0, wxGROW, 5);
  224. wxStaticText* itemStaticText37 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("Position"), wxDefaultPosition, wxDefaultSize, 0 );
  225. itemStaticText37->SetFont(wxFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetPointSize(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetFamily(), wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).GetStyle(), wxBOLD, false, wxT("")));
  226. itemBoxSizer36->Add(itemStaticText37, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
  227. wxStaticLine* itemStaticLine38 = new wxStaticLine( itemRichTextDialogPage1, wxID_STATIC, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
  228. itemBoxSizer36->Add(itemStaticLine38, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
  229. wxBoxSizer* itemBoxSizer39 = new wxBoxSizer(wxHORIZONTAL);
  230. m_positionControls->Add(itemBoxSizer39, 0, wxGROW, 5);
  231. itemBoxSizer39->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
  232. m_moveObjectParentSizer = new wxBoxSizer(wxVERTICAL);
  233. itemBoxSizer39->Add(m_moveObjectParentSizer, 0, wxALIGN_TOP, 5);
  234. wxBoxSizer* itemBoxSizer42 = new wxBoxSizer(wxHORIZONTAL);
  235. m_moveObjectParentSizer->Add(itemBoxSizer42, 0, wxGROW, 5);
  236. m_offsetYCheckbox = new wxCheckBox( itemRichTextDialogPage1, ID_RICHTEXT_OFFSET_CHECKBOX, _("Vertical &Offset:"), wxDefaultPosition, wxDefaultSize, 0 );
  237. m_offsetYCheckbox->SetValue(false);
  238. m_offsetYCheckbox->SetHelpText(_("Enable vertical offset."));
  239. if (wxRichTextSizePage::ShowToolTips())
  240. m_offsetYCheckbox->SetToolTip(_("Enable vertical offset."));
  241. itemBoxSizer42->Add(m_offsetYCheckbox, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
  242. m_offset = new wxTextCtrl( itemRichTextDialogPage1, ID_RICHTEXT_OFFSET, wxEmptyString, wxDefaultPosition, wxSize(65, -1), 0 );
  243. m_offset->SetMaxLength(10);
  244. m_offset->SetHelpText(_("The vertical offset relative to the paragraph."));
  245. if (wxRichTextSizePage::ShowToolTips())
  246. m_offset->SetToolTip(_("The vertical offset relative to the paragraph."));
  247. itemBoxSizer42->Add(m_offset, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxTOP|wxBOTTOM, 5);
  248. wxArrayString m_unitsOffsetStrings;
  249. m_unitsOffsetStrings.Add(_("px"));
  250. m_unitsOffsetStrings.Add(_("cm"));
  251. m_unitsOffset = new wxComboBox( itemRichTextDialogPage1, ID_RICHTEXT_OFFSET_UNITS, _("px"), wxDefaultPosition, wxSize(60, -1), m_unitsOffsetStrings, wxCB_READONLY );
  252. m_unitsOffset->SetStringSelection(_("px"));
  253. m_unitsOffset->SetHelpText(_("Units for the object offset."));
  254. if (wxRichTextSizePage::ShowToolTips())
  255. m_unitsOffset->SetToolTip(_("Units for the object offset."));
  256. itemBoxSizer42->Add(m_unitsOffset, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
  257. m_moveObjectSizer = new wxBoxSizer(wxHORIZONTAL);
  258. m_moveObjectParentSizer->Add(m_moveObjectSizer, 0, wxGROW, 5);
  259. wxStaticText* itemStaticText47 = new wxStaticText( itemRichTextDialogPage1, wxID_STATIC, _("&Move the object to:"), wxDefaultPosition, wxDefaultSize, 0 );
  260. m_moveObjectSizer->Add(itemStaticText47, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
  261. wxButton* itemButton48 = new wxButton( itemRichTextDialogPage1, ID_RICHTEXT_PARA_UP, _("&Previous Paragraph"), wxDefaultPosition, wxDefaultSize, 0 );
  262. itemButton48->SetHelpText(_("Moves the object to the previous paragraph."));
  263. if (wxRichTextSizePage::ShowToolTips())
  264. itemButton48->SetToolTip(_("Moves the object to the previous paragraph."));
  265. m_moveObjectSizer->Add(itemButton48, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
  266. wxButton* itemButton49 = new wxButton( itemRichTextDialogPage1, ID_RICHTEXT_PARA_DOWN, _("&Next Paragraph"), wxDefaultPosition, wxDefaultSize, 0 );
  267. itemButton49->SetHelpText(_("Moves the object to the next paragraph."));
  268. if (wxRichTextSizePage::ShowToolTips())
  269. itemButton49->SetToolTip(_("Moves the object to the next paragraph."));
  270. m_moveObjectSizer->Add(itemButton49, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxTOP|wxBOTTOM, 5);
  271. ////@end wxRichTextSizePage content construction
  272. }
  273. wxRichTextAttr* wxRichTextSizePage::GetAttributes()
  274. {
  275. return wxRichTextFormattingDialog::GetDialogAttributes(this);
  276. }
  277. /*!
  278. * Should we show tooltips?
  279. */
  280. bool wxRichTextSizePage::ShowToolTips()
  281. {
  282. return true;
  283. }
  284. bool wxRichTextSizePage::TransferDataToWindow()
  285. {
  286. m_float->SetSelection(GetAttributes()->GetTextBoxAttr().GetFloatMode());
  287. m_verticalAlignmentCheckbox->SetValue(GetAttributes()->GetTextBoxAttr().HasVerticalAlignment());
  288. if (GetAttributes()->GetTextBoxAttr().HasVerticalAlignment())
  289. {
  290. if ((int) GetAttributes()->GetTextBoxAttr().GetVerticalAlignment() > 0 &&
  291. (int) GetAttributes()->GetTextBoxAttr().GetVerticalAlignment() < 4)
  292. {
  293. m_verticalAlignmentComboBox->SetSelection(((int) GetAttributes()->GetTextBoxAttr().GetVerticalAlignment() - 1));
  294. }
  295. else
  296. m_verticalAlignmentComboBox->SetSelection(0);
  297. }
  298. wxRichTextFormattingDialog* dialog = wxRichTextFormattingDialog::GetDialog(this);
  299. if (dialog)
  300. {
  301. // Only show the Move Object controls if there's an object.
  302. if (!dialog->GetObject())
  303. {
  304. m_moveObjectParentSizer->Show(m_moveObjectSizer, false);
  305. GetSizer()->Layout();
  306. }
  307. }
  308. if (dialog && dialog->GetObject())
  309. {
  310. wxTextAttrSize size = dialog->GetObject()->GetNaturalSize();
  311. if (size.GetWidth().IsValid() && size.GetHeight().IsValid())
  312. {
  313. if (!GetAttributes()->GetTextBoxAttr().GetWidth().IsValid() || GetAttributes()->GetTextBoxAttr().GetWidth().GetValue() <= 0)
  314. {
  315. GetAttributes()->GetTextBoxAttr().GetWidth() = size.GetWidth();
  316. }
  317. if (!GetAttributes()->GetTextBoxAttr().GetHeight().IsValid() || GetAttributes()->GetTextBoxAttr().GetHeight().GetValue() <= 0)
  318. {
  319. GetAttributes()->GetTextBoxAttr().GetHeight() = size.GetHeight();
  320. }
  321. }
  322. }
  323. wxRichTextFormattingDialog::SetDimensionValue(GetAttributes()->GetTextBoxAttr().GetWidth(), m_width, m_unitsW, m_widthCheckbox);
  324. wxRichTextFormattingDialog::SetDimensionValue(GetAttributes()->GetTextBoxAttr().GetHeight(), m_height, m_unitsH, m_heightCheckbox);
  325. wxRichTextFormattingDialog::SetDimensionValue(GetAttributes()->GetTextBoxAttr().GetTop(), m_offset, m_unitsOffset, m_offsetYCheckbox);
  326. return true;
  327. }
  328. bool wxRichTextSizePage::TransferDataFromWindow()
  329. {
  330. GetAttributes()->GetTextBoxAttr().SetFloatMode((wxTextBoxAttrFloatStyle) m_float->GetSelection());
  331. if (m_float->GetSelection() == 0)
  332. GetAttributes()->GetTextBoxAttr().RemoveFlag(wxTEXT_BOX_ATTR_FLOAT);
  333. if (m_verticalAlignmentCheckbox->GetValue())
  334. GetAttributes()->GetTextBoxAttr().SetVerticalAlignment((wxTextBoxAttrVerticalAlignment) (m_verticalAlignmentComboBox->GetSelection() + 1));
  335. else
  336. {
  337. GetAttributes()->GetTextBoxAttr().SetVerticalAlignment(wxTEXT_BOX_ATTR_VERTICAL_ALIGNMENT_NONE);
  338. GetAttributes()->GetTextBoxAttr().RemoveFlag(wxTEXT_BOX_ATTR_VERTICAL_ALIGNMENT);
  339. }
  340. wxRichTextFormattingDialog::GetDimensionValue(GetAttributes()->GetTextBoxAttr().GetWidth(), m_width, m_unitsW, m_widthCheckbox);
  341. wxRichTextFormattingDialog::GetDimensionValue(GetAttributes()->GetTextBoxAttr().GetHeight(), m_height, m_unitsH, m_heightCheckbox);
  342. wxRichTextFormattingDialog::GetDimensionValue(GetAttributes()->GetTextBoxAttr().GetTop(), m_offset, m_unitsOffset, m_offsetYCheckbox);
  343. return true;
  344. }
  345. // Show/hide position controls
  346. void wxRichTextSizePage::ShowPositionControls(bool show)
  347. {
  348. if (m_parentSizer)
  349. {
  350. m_parentSizer->Show(m_positionControls, show);
  351. Layout();
  352. }
  353. }
  354. // Show/hide floating controls
  355. void wxRichTextSizePage::ShowFloatingControls(bool show)
  356. {
  357. if (m_parentSizer)
  358. {
  359. m_parentSizer->Show(m_floatingControls, show);
  360. Layout();
  361. }
  362. }
  363. /*!
  364. * Get bitmap resources
  365. */
  366. wxBitmap wxRichTextSizePage::GetBitmapResource( const wxString& name )
  367. {
  368. // Bitmap retrieval
  369. ////@begin wxRichTextSizePage bitmap retrieval
  370. wxUnusedVar(name);
  371. return wxNullBitmap;
  372. ////@end wxRichTextSizePage bitmap retrieval
  373. }
  374. /*!
  375. * Get icon resources
  376. */
  377. wxIcon wxRichTextSizePage::GetIconResource( const wxString& name )
  378. {
  379. // Icon retrieval
  380. ////@begin wxRichTextSizePage icon retrieval
  381. wxUnusedVar(name);
  382. return wxNullIcon;
  383. ////@end wxRichTextSizePage icon retrieval
  384. }
  385. /*!
  386. * wxEVT_UPDATE_UI event handler for ID_RICHTEXT_WIDTH
  387. */
  388. void wxRichTextSizePage::OnRichtextWidthUpdate( wxUpdateUIEvent& event )
  389. {
  390. event.Enable(m_widthCheckbox->GetValue());
  391. }
  392. /*!
  393. * wxEVT_UPDATE_UI event handler for ID_RICHTEXT_HEIGHT
  394. */
  395. void wxRichTextSizePage::OnRichtextHeightUpdate( wxUpdateUIEvent& event )
  396. {
  397. event.Enable(m_heightCheckbox->GetValue());
  398. }
  399. /*!
  400. * wxEVT_UPDATE_UI event handler for ID_RICHTEXT_OFFSET
  401. */
  402. void wxRichTextSizePage::OnRichtextOffsetUpdate( wxUpdateUIEvent& event )
  403. {
  404. event.Enable(m_offsetYCheckbox->GetValue());
  405. }
  406. /*!
  407. * wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_RICHTEXT_PARA_UP
  408. */
  409. void wxRichTextSizePage::OnRichtextParaUpClick( wxCommandEvent& WXUNUSED(event) )
  410. {
  411. wxRichTextFormattingDialog* dialog = wxRichTextFormattingDialog::GetDialog(this);
  412. if (!dialog || !dialog->GetObject())
  413. return;
  414. // Make sure object attributes are up-to-date
  415. dialog->TransferDataFromWindow();
  416. wxRichTextBuffer* buffer = dialog->GetObject()->GetBuffer();
  417. wxRichTextParagraphLayoutBox* container = dialog->GetObject()->GetParentContainer();
  418. wxRichTextObject* parent = dialog->GetObject()->GetParent();
  419. if (!container || !parent || !buffer)
  420. return;
  421. wxRichTextRange range = dialog->GetObject()->GetRange();
  422. wxRichTextObjectList::compatibility_iterator iter = container->GetChildren().GetFirst();
  423. if (!iter)
  424. return;
  425. while (iter)
  426. {
  427. if (iter->GetData() == parent)
  428. break;
  429. iter = iter->GetNext();
  430. }
  431. if (!iter)
  432. return;
  433. iter = iter->GetPrevious();
  434. if (!iter)
  435. return;
  436. wxRichTextObject *obj = iter->GetData();
  437. wxRichTextRange rg = obj->GetRange();
  438. // tempObj will be deleted along with the undo object, and a clone of it will be
  439. // returned by InsertObjectWithUndo
  440. wxRichTextObject* tempObj = dialog->GetObject()->Clone();
  441. container->DeleteRangeWithUndo(range, buffer->GetRichTextCtrl(), buffer);
  442. wxRichTextObject* obj2 = container->InsertObjectWithUndo(rg.GetStart(), tempObj, buffer->GetRichTextCtrl(), buffer, 0);
  443. dialog->SetObject(obj2);
  444. }
  445. /*!
  446. * wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_RICHTEXT_DOWN
  447. */
  448. void wxRichTextSizePage::OnRichtextParaDownClick( wxCommandEvent& WXUNUSED(event) )
  449. {
  450. wxRichTextFormattingDialog* dialog = wxRichTextFormattingDialog::GetDialog(this);
  451. if (!dialog || !dialog->GetObject())
  452. return;
  453. // Make sure object attributes are up-to-date
  454. dialog->TransferDataFromWindow();
  455. wxRichTextBuffer* buffer = dialog->GetObject()->GetBuffer();
  456. wxRichTextParagraphLayoutBox* container = dialog->GetObject()->GetParentContainer();
  457. wxRichTextObject* parent = dialog->GetObject()->GetParent();
  458. if (!container || !parent || !buffer)
  459. return;
  460. wxRichTextRange range = dialog->GetObject()->GetRange();
  461. wxRichTextObjectList::compatibility_iterator iter = buffer->GetChildren().GetFirst();
  462. if (!iter)
  463. return;
  464. while (iter)
  465. {
  466. if (iter->GetData() == parent)
  467. break;
  468. iter = iter->GetNext();
  469. }
  470. iter = iter->GetNext();
  471. if (!iter)
  472. return;
  473. wxRichTextObject *obj = iter->GetData();
  474. wxRichTextRange rg = obj->GetRange();
  475. // tempObj will be deleted along with the undo object, and a clone of it will be
  476. // returned by InsertObjectWithUndo
  477. wxRichTextObject* tempObj = dialog->GetObject()->Clone();
  478. container->DeleteRangeWithUndo(range, buffer->GetRichTextCtrl(), buffer);
  479. // Minus one because we deleted an object
  480. wxRichTextObject* obj2 = container->InsertObjectWithUndo(rg.GetStart()-1, tempObj, buffer->GetRichTextCtrl(), buffer, 0);
  481. dialog->SetObject(obj2);
  482. }
  483. /*!
  484. * wxEVT_UPDATE_UI event handler for ID_RICHTEXT_VERTICAL_ALIGNMENT_COMBOBOX
  485. */
  486. void wxRichTextSizePage::OnRichtextVerticalAlignmentComboboxUpdate( wxUpdateUIEvent& event )
  487. {
  488. event.Enable(m_verticalAlignmentCheckbox->GetValue());
  489. }