void FormEdit::CreateToolBar(Bar& bar) { Vector<int> sel = _View.GetSelected(); int count = _View.IsLayout() ? _View.GetObjects()->GetCount() : 0; dword first; bool align = true; bool valign = true; if (sel.GetCount() == 0) { count = 0; } else if (sel.GetCount() == 1) { _View.SetHAlign( (*_View.GetObjects())[ sel[0] ].GetHAlign() ); _View.SetVAlign( (*_View.GetObjects())[ sel[0] ].GetVAlign() ); } else { for (int i = 0; i < sel.GetCount(); ++i) { if (i == 0) first = (*_View.GetObjects())[ sel[i] ].GetHAlign(); if (first != (*_View.GetObjects())[ sel[i] ].GetHAlign()) { align = false; break; } } for (int i = 0; i < sel.GetCount(); ++i) { if (i == 0) first = (*_View.GetObjects())[ sel[i] ].GetVAlign(); if (first != (*_View.GetObjects())[ sel[i] ].GetVAlign()) { valign = false; break; } } } bar.Add(FormEditImg::New(), THISBACK(NewFile)).Tip(t_("Create new form...")); bar.Add(FormEditImg::Open(), THISBACK(OpenFile)).Tip(t_("Open form...")); bar.Add(FormEditImg::Save(), THISBACK(SaveFile)).Enable(!IsProjectSaved() && _View.IsLayout()) .Tip(t_("Save changes to file...")); bar.Add(FormEditImg::SaveAs(), THISBACK(SaveAsFile)).Enable(_View.IsLayout()) .Tip(t_("Save form to another file...")); bar.Separator(); bar.Add(FormViewImg::ViewModeAsIs(), THISBACK1(SetViewMode, VIEW_MODE_AS_IS)) .Check(_ViewMode == VIEW_MODE_AS_IS).Enable(_View.IsLayout()) .Tip(t_("Switch to as-is view...")); bar.Add(FormViewImg::ViewModeInfo(), THISBACK1(SetViewMode, VIEW_MODE_INFO)) .Check(_ViewMode == VIEW_MODE_INFO).Enable(_View.IsLayout()) .Tip(t_("Switch to detailed view...")); bar.Add(FormViewImg::ViewModeWireframe(), THISBACK1(SetViewMode, VIEW_MODE_WIREFRAME)) .Check(_ViewMode == VIEW_MODE_WIREFRAME).Enable(_View.IsLayout()) .Tip(t_("Switch to solid view...")); bar.Add(FormViewImg::GridBinding(), THISBACK2(ToggleFlag, "Grid.Binding", false)) .Check(GetFlag("Grid.Binding", false)).Enable(_View.IsLayout()) .Tip(t_("Bind to grid...")); bar.Add(FormEditImg::Coloring(), THISBACK(ToggleColoring)) .Check(GetFlag("View.Coloring", true)).Enable(_View.IsLayout()) .Tip(t_("Coloring of the objects...")); bar.Separator(); bar.Add(FormViewImg::LayoutProperties(), THISBACK(OpenLayoutProperties)) .Enable(_View.IsLayout()) .Tip(t_("Change form settings...")); bar.Add(FormViewImg::Layout(), THISBACK(TestLayout)) .Enable(_View.IsLayout()) .Tip(t_("Preview")); bar.Separator(); bar.Add(FormEditImg::FontZoom(), THISBACK(StdFontZoom)).Check(IsStandardZoom()) .Enable(_View.IsLayout()) .Tip(t_("Use system font...")); bar.Add(FormEditImg::FontZoomStd(), THISBACK(SmallFontZoom)).Check(IsSmallZoom()) .Enable(_View.IsLayout()) .Tip(t_("Use larger font...")); bar.Add(FormEditImg::FontZoomLarge(), THISBACK(LargeFontZoom)).Check(IsLargeZoom()) .Enable(_View.IsLayout()) .Tip(t_("Use largest font...")); bar.Separator(); bar.AddTool(_GUILayouts, _ToolSize); _GUILayouts.Enable(_GUILayouts.GetCount()); _GUILayouts.GetButton(2).Enable(_GUILayouts.GetCount() > 1 && (~_GUILayouts).ToString() != t_(" Default")); _GUILayouts.GetButton(3).Enable(_GUILayouts.GetCount()); bar.ToolBreak(); bar.Add(FormViewImg::SpringLeft(), THISBACK2(SetSprings, Ctrl::LEFT, -1)) .Check(_View.GetHAlign() == Ctrl::LEFT && align).Enable(count) .Tip(t_("Spring left side")); bar.Add(FormViewImg::SpringRight(), THISBACK2(SetSprings, Ctrl::RIGHT, -1)) .Check(_View.GetHAlign() == Ctrl::RIGHT && align).Enable(count) .Tip(t_("Spring right side")); bar.Add(FormViewImg::SpringHSize(), THISBACK2(SetSprings, Ctrl::SIZE, -1)) .Check(_View.GetHAlign() == Ctrl::SIZE && align).Enable(count) .Tip(t_("Spring both horizontal sides")); bar.Add(FormViewImg::SpringHCenter(), THISBACK2(SetSprings, Ctrl::CENTER, -1)) .Check(_View.GetHAlign() == Ctrl::CENTER && align).Enable(count) .Tip(t_("Horizontal center")); bar.Separator(); bar.Add(FormViewImg::SpringTop(), THISBACK2(SetSprings, -1, Ctrl::TOP)) .Check(_View.GetVAlign() == Ctrl::TOP && valign).Enable(count) .Tip(t_("Spring top side")); bar.Add(FormViewImg::SpringBottom(), THISBACK2(SetSprings, -1, Ctrl::BOTTOM)) .Check(_View.GetVAlign() == Ctrl::BOTTOM && valign).Enable(count) .Tip(t_("Spring bottom side")); bar.Add(FormViewImg::SpringVSize(), THISBACK2(SetSprings, -1, Ctrl::SIZE)) .Check(_View.GetVAlign() == Ctrl::SIZE && valign).Enable(count) .Tip(t_("Spring both vertical sides")); bar.Add(FormViewImg::SpringVCenter(), THISBACK2(SetSprings, -1, Ctrl::CENTER)) .Check(_View.GetVAlign() == Ctrl::CENTER && valign).Enable(count) .Tip(t_("Vertical center")); bar.Separator(); bar.Add(FormViewImg::SpringTopLeft(), THISBACK2(SetSprings, Ctrl::LEFT, Ctrl::TOP)) .Enable(count) .Check(_View.GetHAlign() == Ctrl::LEFT && _View.GetVAlign() == Ctrl::TOP && align && valign) .Tip(t_("Spring left-top corner")); bar.Add(FormViewImg::SpringBottomLeft(), THISBACK2(SetSprings, Ctrl::LEFT, Ctrl::BOTTOM)) .Enable(count) .Check(_View.GetHAlign() == Ctrl::LEFT && _View.GetVAlign() == Ctrl::BOTTOM && align && valign) .Tip(t_("Spring left-bottom corner")); bar.Add(FormViewImg::SpringBottomRight(), THISBACK2(SetSprings, Ctrl::RIGHT, Ctrl::BOTTOM)) .Enable(count) .Check(_View.GetHAlign() == Ctrl::RIGHT && _View.GetVAlign() == Ctrl::BOTTOM && align && valign) .Tip(t_("Spring right-bottom corner")); bar.Add(FormViewImg::SpringTopRight(), THISBACK2(SetSprings, Ctrl::RIGHT, Ctrl::TOP)) .Enable(count) .Check(_View.GetHAlign() == Ctrl::RIGHT && _View.GetVAlign() == Ctrl::TOP && align && valign) .Tip(t_("Spring right-top corner")); bar.Separator(); bar.Add(FormViewImg::SpringAuto(), THISBACK2(SetSprings, Ctrl::SIZE, Ctrl::SIZE)) .Enable(count) .Check(_View.GetHAlign() == Ctrl::SIZE && _View.GetVAlign() == Ctrl::SIZE && align && valign) .Tip(t_("Spring all sides")); bar.Add(FormViewImg::SpringSize(), THISBACK2(SetSprings, Ctrl::CENTER, Ctrl::CENTER)) .Enable(count) .Check(_View.GetHAlign() == Ctrl::CENTER && _View.GetVAlign() == Ctrl::CENTER && align && valign) .Tip(t_("Center object")); }