# HG changeset patch # User Olaf Wintermann # Date 1422783307 -3600 # Node ID a56c2baa94297642aad6e04a90411aed492c3889 # Parent a38aec91bd66f6dd7e7293de19f665bff1b5cd70 added vbox,hbox function (WPF) diff -r a38aec91bd66 -r a56c2baa9429 application/main.c --- a/application/main.c Sat Jan 31 11:51:54 2015 +0100 +++ b/application/main.c Sun Feb 01 10:35:07 2015 +0100 @@ -117,11 +117,16 @@ ui_menuitem("item4", NULL, NULL); UiObject *obj = ui_window("Test", NULL); + ui_hbox(obj); + ui_button(obj, "HELLO", NULL, NULL); + ui_button(obj, "WORLD", NULL, NULL); + ui_end(obj); ui_button(obj, "Test1", action_button, NULL); ui_button(obj, "Test2", action_button, NULL); ui_button(obj, "Test3", action_button, NULL); ui_button(obj, "Test4", action_button, NULL); ui_show(obj); + fflush(stdout); ui_main(); /* ui_locales_dir("/opt/app1/locales"); diff -r a38aec91bd66 -r a56c2baa9429 ui/wpf/UIcore/Container.cs --- a/ui/wpf/UIcore/Container.cs Sat Jan 31 11:51:54 2015 +0100 +++ b/ui/wpf/UIcore/Container.cs Sun Feb 01 10:35:07 2015 +0100 @@ -19,9 +19,8 @@ HORIZONTAL } - public class BoxContainer : Container + public class BoxContainer : Grid, Container { - public Grid Grid; public BoxOrientation Orientation; private int x = 0; @@ -29,23 +28,27 @@ private bool filled = false; - public BoxContainer(Grid grid, BoxOrientation orientation) + public BoxContainer(BoxOrientation orientation) : base() { - Grid = grid; Orientation = orientation; if(Orientation == BoxOrientation.HORIZONTAL) { RowDefinition row = new RowDefinition(); row.Height = new GridLength(1, GridUnitType.Star); - Grid.RowDefinitions.Add(row); + RowDefinitions.Add(row); } else { ColumnDefinition col = new ColumnDefinition(); col.Width = new GridLength(1, GridUnitType.Star); - Grid.ColumnDefinitions.Add(col); + ColumnDefinitions.Add(col); } } + + public BoxContainer(Container parent, BoxOrientation orientation) : this(orientation) + { + parent.Add(this, true); + } public void Add(UIElement control, bool fill) { @@ -66,7 +69,7 @@ { col.Width = GridLength.Auto; } - Grid.ColumnDefinitions.Add(col); + ColumnDefinitions.Add(col); } else { @@ -85,12 +88,12 @@ { row.Height = GridLength.Auto; } - Grid.RowDefinitions.Add(row); + RowDefinitions.Add(row); } Grid.SetColumn(control, x); Grid.SetRow(control, y); - Grid.Children.Add(control); + Children.Add(control); if(Orientation == BoxOrientation.HORIZONTAL) { @@ -101,6 +104,11 @@ y++; } } + + public static BoxContainer CreateBoxContainer(Container parent, BoxOrientation orientation) + { + return Application.GetInstance().Exec(() => new BoxContainer(parent, orientation)); + } } public class GridContainer : Container diff -r a38aec91bd66 -r a56c2baa9429 ui/wpf/UIcore/Window.cs --- a/ui/wpf/UIcore/Window.cs Sat Jan 31 11:51:54 2015 +0100 +++ b/ui/wpf/UIcore/Window.cs Sun Feb 01 10:35:07 2015 +0100 @@ -25,13 +25,12 @@ ColumnDefinition column = new ColumnDefinition(); column.Width = new GridLength(1, GridUnitType.Star); windowGrid.ColumnDefinitions.Add(column); - - AddChild(windowGrid); + this.AddChild(windowGrid); int rowIndex = 0; // menu Application app = Application.GetInstance(); - if (!app.AppMenu.IsEmpty()) + if (!app.AppMenu.IsEmpty() && false) { System.Windows.Controls.Menu menu = app.AppMenu.CreateMenu(uiobj); @@ -51,13 +50,13 @@ RowDefinition contentRow = new RowDefinition(); contentRow.Height = new GridLength(1, GridUnitType.Star); windowGrid.RowDefinitions.Add(contentRow); - Grid content = new Grid(); - Grid.SetColumn(content, 0); - Grid.SetRow(content, rowIndex); - windowGrid.Children.Add(content); + BoxContainer vbox = new BoxContainer(BoxOrientation.VERTICAL); + Grid.SetColumn(vbox, 0); + Grid.SetRow(vbox, rowIndex); + windowGrid.Children.Add(vbox); rowIndex++; - Container = new BoxContainer(content, BoxOrientation.VERTICAL); + Container = vbox; Closed += CloseEvent; } diff -r a38aec91bd66 -r a56c2baa9429 ui/wpf/UIwrapper/UIwrapper.v12.suo Binary file ui/wpf/UIwrapper/UIwrapper.v12.suo has changed diff -r a38aec91bd66 -r a56c2baa9429 ui/wpf/UIwrapper/UIwrapper/UIwrapper.vcxproj --- a/ui/wpf/UIwrapper/UIwrapper/UIwrapper.vcxproj Sat Jan 31 11:51:54 2015 +0100 +++ b/ui/wpf/UIwrapper/UIwrapper/UIwrapper.vcxproj Sun Feb 01 10:35:07 2015 +0100 @@ -152,6 +152,7 @@ + @@ -162,6 +163,7 @@ + Create diff -r a38aec91bd66 -r a56c2baa9429 ui/wpf/UIwrapper/UIwrapper/UIwrapper.vcxproj.filters --- a/ui/wpf/UIwrapper/UIwrapper/UIwrapper.vcxproj.filters Sat Jan 31 11:51:54 2015 +0100 +++ b/ui/wpf/UIwrapper/UIwrapper/UIwrapper.vcxproj.filters Sun Feb 01 10:35:07 2015 +0100 @@ -33,6 +33,9 @@ Headerdateien + + Headerdateien + @@ -53,6 +56,9 @@ Quelldateien + + Quelldateien + diff -r a38aec91bd66 -r a56c2baa9429 ui/wpf/UIwrapper/UIwrapper/container.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/wpf/UIwrapper/UIwrapper/container.cpp Sun Feb 01 10:35:07 2015 +0100 @@ -0,0 +1,22 @@ + + +#include "stdafx.h" +#include + +#include "container.h" + +#using "UIcore.dll" + +UI_EXPORT void* __stdcall UIvbox(gcroot *parent) { + UI::BoxContainer ^vbox = UI::BoxContainer::CreateBoxContainer(*parent, UI::BoxOrientation::VERTICAL); + gcroot *container = new gcroot(); + *container = vbox; + return container; +} + +UI_EXPORT void* __stdcall UIhbox(gcroot *parent) { + UI::BoxContainer ^hbox = UI::BoxContainer::CreateBoxContainer(*parent, UI::BoxOrientation::HORIZONTAL); + gcroot *container = new gcroot(); + *container = hbox; + return container; +} diff -r a38aec91bd66 -r a56c2baa9429 ui/wpf/UIwrapper/UIwrapper/container.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/wpf/UIwrapper/UIwrapper/container.h Sun Feb 01 10:35:07 2015 +0100 @@ -0,0 +1,5 @@ + + +#pragma once + +#include "toolkit.h" diff -r a38aec91bd66 -r a56c2baa9429 ui/wpf/container.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/wpf/container.c Sun Feb 01 10:35:07 2015 +0100 @@ -0,0 +1,30 @@ +#include +#include + +#include "container.h" +#include "../common/object.h" + +UIWIDGET ui_vbox(UiObject *obj) { + UiContainer *ct = uic_get_current_container(obj); + + UIWIDGET *vbox = UIvbox(ct); + + UiObject *newobj = uic_object_new(obj, vbox); + newobj->container = (UiContainer*)vbox; + uic_obj_add(obj, newobj); + + return vbox; +} + +UIWIDGET ui_hbox(UiObject *obj) { + UiContainer *ct = uic_get_current_container(obj); + + UIWIDGET *hbox = UIhbox(ct); + + UiObject *newobj = uic_object_new(obj, hbox); + newobj->container = (UiContainer*)hbox; + uic_obj_add(obj, newobj); + + return hbox; +} + diff -r a38aec91bd66 -r a56c2baa9429 ui/wpf/container.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/wpf/container.h Sun Feb 01 10:35:07 2015 +0100 @@ -0,0 +1,26 @@ +/* + * File: container.h + * Author: Olaf + * + * Created on 31. Januar 2015, 23:20 + */ + +#ifndef CONTAINER_H +#define CONTAINER_H + +#include "toolkit.h" + +#ifdef __cplusplus +extern "C" { +#endif + +UI_IMPORT void* __stdcall UIvbox(UiContainer *parent); +UI_IMPORT void* __stdcall UIhbox(UiContainer *parent); + + +#ifdef __cplusplus +} +#endif + +#endif /* CONTAINER_H */ + diff -r a38aec91bd66 -r a56c2baa9429 ui/wpf/objs.mk --- a/ui/wpf/objs.mk Sat Jan 31 11:51:54 2015 +0100 +++ b/ui/wpf/objs.mk Sun Feb 01 10:35:07 2015 +0100 @@ -31,6 +31,7 @@ WPFOBJ = toolkit.o WPFOBJ += window.o +WPFOBJ += container.o WPFOBJ += menu.o WPFOBJ += button.o