* added scroll view around canvas in Haiku version

* used new layout features in StyleView for Haiku version


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19212 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stephan Aßmus
2006-11-06 00:24:07 +00:00
parent 73a2ffba3b
commit c2c1e4c725
2 changed files with 57 additions and 8 deletions
+12 -2
View File
@@ -624,8 +624,18 @@ MainWindow::_CreateGUI(BRect bounds)
layout->AddView(topSideView, 1, 0);
// canvas view
fCanvasView = new CanvasView(BRect(0, 0, 200, 200));
layout->AddView(fCanvasView, 1, 1);
BRect canvasBounds = BRect(0, 0, 200, 200);
fCanvasView = new CanvasView(canvasBounds);
// scroll view around canvas view
canvasBounds.bottom += B_H_SCROLL_BAR_HEIGHT;
canvasBounds.right += B_V_SCROLL_BAR_WIDTH;
ScrollView* canvasScrollView
= new ScrollView(fCanvasView, SCROLL_VERTICAL | SCROLL_HORIZONTAL
| SCROLL_NO_FRAME | SCROLL_VISIBLE_RECT_IS_CHILD_BOUNDS,
canvasBounds, "canvas scroll view",
B_FOLLOW_NONE, B_WILL_DRAW | B_FRAME_EVENTS);
layout->AddView(canvasScrollView, 1, 1);
// views along the top
+45 -6
View File
@@ -8,6 +8,11 @@
#include "StyleView.h"
#if __HAIKU__
# include "GridLayout.h"
# include "GroupLayout.h"
# include "SpaceLayoutItem.h"
#endif
#include <Menu.h>
#include <MenuBar.h>
#include <MenuField.h>
@@ -40,7 +45,11 @@ enum {
// constructor
StyleView::StyleView(BRect frame)
#ifdef __HAIKU__
: BView("style view", 0),
#else
: BView(frame, "style view", B_FOLLOW_LEFT | B_FOLLOW_TOP, 0),
#endif
fCommandStack(NULL),
fCurrentColor(NULL),
fStyle(NULL),
@@ -49,10 +58,6 @@ StyleView::StyleView(BRect frame)
{
SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
frame.OffsetTo(B_ORIGIN);
frame.InsetBy(5, 5);
frame.bottom = frame.top + 15;
// style type
BMenu* menu = new BPopUpMenu("<unavailable>");
BMessage* message = new BMessage(MSG_SET_STYLE_TYPE);
@@ -61,6 +66,18 @@ StyleView::StyleView(BRect frame)
message = new BMessage(MSG_SET_STYLE_TYPE);
message->AddInt32("type", STYLE_TYPE_GRADIENT);
menu->AddItem(new BMenuItem("Gradient", message));
#ifdef __HAIKU__
BGridLayout* layout = new BGridLayout(5, 5);
SetLayout(layout);
fStyleType = new BMenuField( "Style Type", menu, NULL);
#else
frame.OffsetTo(B_ORIGIN);
frame.InsetBy(5, 5);
frame.bottom = frame.top + 15;
fStyleType = new BMenuField(frame, "style type", "Style Type",
menu, true);
AddChild(fStyleType);
@@ -70,7 +87,7 @@ StyleView::StyleView(BRect frame)
fStyleType->MenuBar()->GetPreferredSize(&width, &height);
fStyleType->MenuBar()->ResizeTo(width, height);
fStyleType->ResizeTo(frame.Width(), height + 6);
#endif // __HAIKU__
// gradient type
menu = new BPopUpMenu("<unavailable>");
@@ -87,6 +104,27 @@ StyleView::StyleView(BRect frame)
message->AddInt32("type", GRADIENT_CONIC);
menu->AddItem(new BMenuItem("Conic", message));
#if __HAIKU__
fGradientType = new BMenuField("Gradient Type", menu, NULL);
fGradientControl = new GradientControl(new BMessage(MSG_SET_COLOR),
this);
layout->AddItem(BSpaceLayoutItem::CreateVerticalStrut(3), 0, 0, 4);
layout->AddItem(BSpaceLayoutItem::CreateHorizontalStrut(3), 0, 1, 1, 3);
layout->AddItem(fStyleType->CreateLabelLayoutItem(), 1, 1);
layout->AddItem(fStyleType->CreateMenuBarLayoutItem(), 2, 1);
layout->AddItem(fGradientType->CreateLabelLayoutItem(), 1, 2);
layout->AddItem(fGradientType->CreateMenuBarLayoutItem(), 2, 2);
layout->AddView(fGradientControl, 1, 3, 2);
layout->AddItem(BSpaceLayoutItem::CreateHorizontalStrut(3), 3, 1, 1, 3);
layout->AddItem(BSpaceLayoutItem::CreateVerticalStrut(3), 0, 4, 4);
#else // __HAIKU__
frame.OffsetBy(0, fStyleType->Frame().Height() + 6);
fGradientType = new BMenuField(frame, "gradient type", "Gradient Type",
menu, true);
@@ -110,8 +148,9 @@ StyleView::StyleView(BRect frame)
fGradientControl->MoveTo(frame.left, frame.top);
AddChild(fGradientControl);
fGradientControl->SetEnabled(false);
#endif // __HAIKU__
fGradientControl->SetEnabled(false);
fGradientControl->Gradient()->AddObserver(this);
}