diff --git a/examples/src/aui/main.go b/examples/src/aui/main.go index 4f0e71b..1198ebf 100644 --- a/examples/src/aui/main.go +++ b/examples/src/aui/main.go @@ -3,121 +3,118 @@ package main import "github.com/dontpanic92/wxGo/wx" type MyFrame struct { - wx.Frame - auiManager wx.AuiManager - menuBar wx.MenuBar + wx.Frame + auiManager wx.AuiManager + menuBar wx.MenuBar } const ( - ID_Settings = iota + wx.ID_HIGHEST + 1 - ID_SampleItem + ID_Settings = iota + wx.ID_HIGHEST + 1 + ID_SampleItem ) func NewMyFrame() *MyFrame { - self := &MyFrame{} - self.Frame = wx.NewFrame(wx.NullWindow, wx.ID_ANY, "AUI Example") - - // AUI Init - - self.auiManager = wx.NewAuiManager() - self.auiManager.SetManagedWindow(self) - - // We should call auiManager.UnInit() in frame's desructor, but unfortunately - // we can't get a callback when frame's destructor called. So we do this in the - // EVT_CLOSE_WINDOW. And also because we listen the CloseEvent, we have to call - // Destroy() manually. - wx.Bind(self, wx.EVT_CLOSE_WINDOW, func(e wx.Event){ - self.auiManager.UnInit() - self.Destroy() - }, self.GetId()) - - // Menu - - self.menuBar = wx.NewMenuBar() - fileMenu := wx.NewMenu() - fileMenu.Append(wx.ID_EXIT) - - wx.Bind(self, wx.EVT_MENU, func(e wx.Event){ - self.Close(true) - }, wx.ID_EXIT) - - self.menuBar.Append(fileMenu, "&File") - self.SetMenuBar(self.menuBar) - - // StatusBar - - self.CreateStatusBar() - self.GetStatusBar().SetStatusText("Ready") - - // AuiToolBar - - toolBar1 := wx.NewAuiToolBar(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.AUI_TB_DEFAULT_STYLE | wx.AUI_TB_OVERFLOW) - toolBar1.SetToolBitmapSize(wx.NewSizeT(48,48)) - - toolBar1.AddTool(ID_SampleItem + 1, "Test", wx.ArtProviderGetBitmap(wx.ART_ERROR)) - toolBar1.AddSeparator() - toolBar1.AddTool(ID_SampleItem + 2, "Test", wx.ArtProviderGetBitmap(wx.ART_QUESTION)) - toolBar1.AddTool(ID_SampleItem + 3, "Test", wx.ArtProviderGetBitmap(wx.ART_INFORMATION)) - toolBar1.AddTool(ID_SampleItem + 4, "Test", wx.ArtProviderGetBitmap(wx.ART_WARNING)) - toolBar1.AddTool(ID_SampleItem + 5, "Test", wx.ArtProviderGetBitmap(wx.ART_MISSING_IMAGE)) - - separator := wx.NewAuiToolBarItemT() - separator.SetKind(wx.ITEM_SEPARATOR) - customButton := wx.NewAuiToolBarItemT() - customButton.SetKind(wx.ITEM_NORMAL) - customButton.SetLabel("Customize...") - wx.Bind(self, wx.EVT_MENU, func(e wx.Event) { - wx.MessageBox("Customize clicked!") - }, customButton.GetId()) - - - toolBar1.SetCustomOverflowItems([]wx.AuiToolBarItem{}, []wx.AuiToolBarItem{separator, customButton}) - toolBar1.Realize() - - - paneInfo := wx.NewAuiPaneInfoT().Name("tb1").Caption("Big Toolbar").ToolbarPane().Top() - self.auiManager.AddPane(toolBar1, paneInfo) - - // Left pane - a tree control - - treeCtrl := wx.NewTreeCtrl(self, wx.ID_ANY, wx.DefaultPosition, wx.NewSizeT(160, 250), wx.TR_DEFAULT_STYLE | wx.NO_BORDER); - - treeRoot := treeCtrl.AddRoot("wxAUI Project", 0) - - firstItem := treeCtrl.AppendItem(treeRoot, "Item 1", 0) - treeCtrl.AppendItem(treeRoot, "Item 2", 0) - treeCtrl.AppendItem(treeRoot, "Item 3", 0) - treeCtrl.AppendItem(treeRoot, "Item 4", 0) - treeCtrl.AppendItem(treeRoot, "Item 5", 0) - treeCtrl.AppendItem(firstItem, "Subitem 1", 1) - treeCtrl.AppendItem(firstItem, "Subitem 2", 1) - treeCtrl.AppendItem(firstItem, "Subitem 3", 1) - treeCtrl.AppendItem(firstItem, "Subitem 4", 1) - treeCtrl.AppendItem(firstItem, "Subitem 5", 1) - treeCtrl.Expand(treeRoot) - - self.auiManager.AddPane(wx.ToWindow(treeCtrl), wx.LEFT, "Hello") - // wxTreeCtrl has an overloaded `GetNextSibling` function, which as a different - // signature with wxWindow. So we have to cast wxTreeCtrl to wxWindow manually. - // Equivalent: treeCtrl.SwigGetWindow() - - - // CenterPane - a text control - - paneInfo = wx.NewAuiPaneInfoT().Name("notebook").CenterPane().PaneBorder(false) - notebook := wx.NewAuiNotebook(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.AUI_NB_DEFAULT_STYLE | wx.AUI_NB_CLOSE_BUTTON) - notebook.AddPage(wx.NewTextCtrl(notebook, wx.ID_ANY, "", wx.DefaultPosition, wx.DefaultSize, wx.TE_MULTILINE), "Test", true) - self.auiManager.AddPane(notebook, paneInfo) - - self.auiManager.Update() - - return self + self := &MyFrame{} + self.Frame = wx.NewFrame(wx.NullWindow, wx.ID_ANY, "AUI Example") + + // AUI Init + + self.auiManager = wx.NewAuiManager() + self.auiManager.SetManagedWindow(self) + + // We should call auiManager.UnInit() in frame's desructor, but unfortunately + // we can't get a callback when frame's destructor called. So we do this in the + // EVT_CLOSE_WINDOW. And also because we listen the CloseEvent, we have to call + // Destroy() manually. + wx.Bind(self, wx.EVT_CLOSE_WINDOW, func(e wx.Event) { + self.auiManager.UnInit() + self.Destroy() + }, self.GetId()) + + // Menu + + self.menuBar = wx.NewMenuBar() + fileMenu := wx.NewMenu() + fileMenu.Append(wx.ID_EXIT) + + wx.Bind(self, wx.EVT_MENU, func(e wx.Event) { + self.Close(true) + }, wx.ID_EXIT) + + self.menuBar.Append(fileMenu, "&File") + self.SetMenuBar(self.menuBar) + + // StatusBar + + self.CreateStatusBar() + self.GetStatusBar().SetStatusText("Ready") + + // AuiToolBar + + toolBar1 := wx.NewAuiToolBar(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.AUI_TB_DEFAULT_STYLE|wx.AUI_TB_OVERFLOW) + toolBar1.SetToolBitmapSize(wx.NewSizeT(48, 48)) + + toolBar1.AddTool(ID_SampleItem+1, "Test", wx.ArtProviderGetBitmap(wx.ART_ERROR)) + toolBar1.AddSeparator() + toolBar1.AddTool(ID_SampleItem+2, "Test", wx.ArtProviderGetBitmap(wx.ART_QUESTION)) + toolBar1.AddTool(ID_SampleItem+3, "Test", wx.ArtProviderGetBitmap(wx.ART_INFORMATION)) + toolBar1.AddTool(ID_SampleItem+4, "Test", wx.ArtProviderGetBitmap(wx.ART_WARNING)) + toolBar1.AddTool(ID_SampleItem+5, "Test", wx.ArtProviderGetBitmap(wx.ART_MISSING_IMAGE)) + + separator := wx.NewAuiToolBarItemT() + separator.SetKind(wx.ITEM_SEPARATOR) + customButton := wx.NewAuiToolBarItemT() + customButton.SetKind(wx.ITEM_NORMAL) + customButton.SetLabel("Customize...") + wx.Bind(self, wx.EVT_MENU, func(e wx.Event) { + wx.MessageBox("Customize clicked!") + }, customButton.GetId()) + + toolBar1.SetCustomOverflowItems([]wx.AuiToolBarItem{}, []wx.AuiToolBarItem{separator, customButton}) + toolBar1.Realize() + + paneInfo := wx.NewAuiPaneInfoT().Name("tb1").Caption("Big Toolbar").ToolbarPane().Top() + self.auiManager.AddPane(toolBar1, paneInfo) + + // Left pane - a tree control + + treeCtrl := wx.NewTreeCtrl(self, wx.ID_ANY, wx.DefaultPosition, wx.NewSizeT(160, 250), wx.TR_DEFAULT_STYLE|wx.NO_BORDER) + + treeRoot := treeCtrl.AddRoot("wxAUI Project", 0) + + firstItem := treeCtrl.AppendItem(treeRoot, "Item 1", 0) + treeCtrl.AppendItem(treeRoot, "Item 2", 0) + treeCtrl.AppendItem(treeRoot, "Item 3", 0) + treeCtrl.AppendItem(treeRoot, "Item 4", 0) + treeCtrl.AppendItem(treeRoot, "Item 5", 0) + treeCtrl.AppendItem(firstItem, "Subitem 1", 1) + treeCtrl.AppendItem(firstItem, "Subitem 2", 1) + treeCtrl.AppendItem(firstItem, "Subitem 3", 1) + treeCtrl.AppendItem(firstItem, "Subitem 4", 1) + treeCtrl.AppendItem(firstItem, "Subitem 5", 1) + treeCtrl.Expand(treeRoot) + + self.auiManager.AddPane(wx.ToWindow(treeCtrl), wx.LEFT, "Hello") + // wxTreeCtrl has an overloaded `GetNextSibling` function, which as a different + // signature with wxWindow. So we have to cast wxTreeCtrl to wxWindow manually. + // Equivalent: treeCtrl.SwigGetWindow() + + // CenterPane - a text control + + paneInfo = wx.NewAuiPaneInfoT().Name("notebook").CenterPane().PaneBorder(false) + notebook := wx.NewAuiNotebook(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.AUI_NB_DEFAULT_STYLE|wx.AUI_NB_CLOSE_BUTTON) + notebook.AddPage(wx.NewTextCtrl(notebook, wx.ID_ANY, "", wx.DefaultPosition, wx.DefaultSize, wx.TE_MULTILINE), "Test", true) + self.auiManager.AddPane(notebook, paneInfo) + + self.auiManager.Update() + + return self } func main() { - wx1 := wx.NewApp() - frame := NewMyFrame() - frame.Show() - wx1.MainLoop() - return + wx1 := wx.NewApp() + frame := NewMyFrame() + frame.Show() + wx1.MainLoop() + return } diff --git a/examples/src/controls/main.go b/examples/src/controls/main.go index d85b979..8909df0 100644 --- a/examples/src/controls/main.go +++ b/examples/src/controls/main.go @@ -3,65 +3,64 @@ package main import "github.com/dontpanic92/wxGo/wx" type ControlDialog struct { - wx.Dialog + wx.Dialog } func NewControlDialog() ControlDialog { - f := ControlDialog{} - f.Dialog = wx.NewDialog(wx.NullWindow, -1, "Controls", wx.DefaultPosition, wx.NewSizeT(600, 400)) - - bSizer2 := wx.NewBoxSizer( wx.HORIZONTAL ) - bSizer3 := wx.NewBoxSizer( wx.VERTICAL ) - - - radioBox2 := wx.NewRadioBox( f, wx.ID_ANY, "wxRadioBox", wx.DefaultPosition, wx.DefaultSize, []string{"aaa", "bbb"}, 1, wx.HORIZONTAL ) - radioBox2.SetSelection( 0 ) - bSizer3.Add( radioBox2, 0, wx.ALL|wx.EXPAND, 5 ) - - checkBox2 := wx.NewCheckBox( f, wx.ID_ANY, "Check Me!", wx.DefaultPosition, wx.DefaultSize, 0) - bSizer3.Add( checkBox2, 0, wx.ALL|wx.EXPAND, 5 ) - - staticText2 := wx.NewStaticText( f, wx.ID_ANY, "MyLabel", wx.DefaultPosition, wx.DefaultSize, 0) - staticText2.Wrap( -1 ) - bSizer3.Add( staticText2, 0, wx.ALL|wx.EXPAND, 5 ) - - textCtrl2 := wx.NewTextCtrl( f, wx.ID_ANY, "", wx.DefaultPosition, wx.DefaultSize, 0) - bSizer3.Add( textCtrl2, 0, wx.ALL|wx.EXPAND, 5 ) - - slider1 := wx.NewSlider( f, wx.ID_ANY, 50, 0, 100, wx.DefaultPosition, wx.DefaultSize, wx.HORIZONTAL ) - bSizer3.Add( slider1, 0, wx.ALL|wx.EXPAND, 5 ) - - bSizer2.Add( bSizer3, 1, wx.EXPAND, 5 ) - bSizer4 := wx.NewBoxSizer( wx.VERTICAL ) - - listBox2 := wx.NewListBox( f, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, []string{"aaa", "bbb"}, 0) - listBox2.InsertItems([]string{"ccc"}, 1) - bSizer4.Add( listBox2, 1, wx.ALL|wx.EXPAND, 5 ) - - gauge1 := wx.NewGauge( f, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, wx.HORIZONTAL ) - gauge1.SetValue( 50 ) - bSizer4.Add( gauge1, 0, wx.ALL|wx.EXPAND, 5 ) - - button5 := wx.NewButton( f, wx.ID_ANY, "MyButton", wx.DefaultPosition, wx.DefaultSize, 0) - bSizer4.Add( button5, 0, wx.ALL|wx.EXPAND, 5 ) - - button6 := wx.NewButton( f, wx.ID_ANY, "MyButton", wx.DefaultPosition, wx.DefaultSize, 0) - bSizer4.Add( button6, 0, wx.ALL|wx.EXPAND, 5 ) - - bSizer2.Add( bSizer4, 1, wx.EXPAND, 5 ) - - f.SetSizer( bSizer2 ) - f.Layout() - - f.Centre( wx.BOTH ) - - return f + f := ControlDialog{} + f.Dialog = wx.NewDialog(wx.NullWindow, -1, "Controls", wx.DefaultPosition, wx.NewSizeT(600, 400)) + + bSizer2 := wx.NewBoxSizer(wx.HORIZONTAL) + bSizer3 := wx.NewBoxSizer(wx.VERTICAL) + + radioBox2 := wx.NewRadioBox(f, wx.ID_ANY, "wxRadioBox", wx.DefaultPosition, wx.DefaultSize, []string{"aaa", "bbb"}, 1, wx.HORIZONTAL) + radioBox2.SetSelection(0) + bSizer3.Add(radioBox2, 0, wx.ALL|wx.EXPAND, 5) + + checkBox2 := wx.NewCheckBox(f, wx.ID_ANY, "Check Me!", wx.DefaultPosition, wx.DefaultSize, 0) + bSizer3.Add(checkBox2, 0, wx.ALL|wx.EXPAND, 5) + + staticText2 := wx.NewStaticText(f, wx.ID_ANY, "MyLabel", wx.DefaultPosition, wx.DefaultSize, 0) + staticText2.Wrap(-1) + bSizer3.Add(staticText2, 0, wx.ALL|wx.EXPAND, 5) + + textCtrl2 := wx.NewTextCtrl(f, wx.ID_ANY, "", wx.DefaultPosition, wx.DefaultSize, 0) + bSizer3.Add(textCtrl2, 0, wx.ALL|wx.EXPAND, 5) + + slider1 := wx.NewSlider(f, wx.ID_ANY, 50, 0, 100, wx.DefaultPosition, wx.DefaultSize, wx.HORIZONTAL) + bSizer3.Add(slider1, 0, wx.ALL|wx.EXPAND, 5) + + bSizer2.Add(bSizer3, 1, wx.EXPAND, 5) + bSizer4 := wx.NewBoxSizer(wx.VERTICAL) + + listBox2 := wx.NewListBox(f, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, []string{"aaa", "bbb"}, 0) + listBox2.InsertItems([]string{"ccc"}, 1) + bSizer4.Add(listBox2, 1, wx.ALL|wx.EXPAND, 5) + + gauge1 := wx.NewGauge(f, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, wx.HORIZONTAL) + gauge1.SetValue(50) + bSizer4.Add(gauge1, 0, wx.ALL|wx.EXPAND, 5) + + button5 := wx.NewButton(f, wx.ID_ANY, "MyButton", wx.DefaultPosition, wx.DefaultSize, 0) + bSizer4.Add(button5, 0, wx.ALL|wx.EXPAND, 5) + + button6 := wx.NewButton(f, wx.ID_ANY, "MyButton", wx.DefaultPosition, wx.DefaultSize, 0) + bSizer4.Add(button6, 0, wx.ALL|wx.EXPAND, 5) + + bSizer2.Add(bSizer4, 1, wx.EXPAND, 5) + + f.SetSizer(bSizer2) + f.Layout() + + f.Centre(wx.BOTH) + + return f } func main() { - wx.NewApp() - f := NewControlDialog() - f.ShowModal() - f.Destroy() - return + wx.NewApp() + f := NewControlDialog() + f.ShowModal() + f.Destroy() + return } diff --git a/examples/src/dapeton/main.go b/examples/src/dapeton/main.go index 1c3379b..87b58f9 100644 --- a/examples/src/dapeton/main.go +++ b/examples/src/dapeton/main.go @@ -4,130 +4,128 @@ import "github.com/dontpanic92/wxGo/wx" //Frame Struct def type MyFrame struct { - wx.Frame - statusbar wx.StatusBar - toolbar wx.ToolBar - menubar wx.MenuBar - notebook wx.AuiNotebook + wx.Frame + statusbar wx.StatusBar + toolbar wx.ToolBar + menubar wx.MenuBar + notebook wx.AuiNotebook } //Menu Event Functions def -func (f *MyFrame)evtColour(wx.Event) { - colourdlg := wx.NewColourDialog(f) - if colourdlg.ShowModal() == wx.ID_OK{ - colour := colourdlg.GetColourData().GetColour() - currentPage := f.notebook.GetCurrentPage() - if currentPage != wx.NullWindow { - currentPage.SetForegroundColour(colour) - } - } - colourdlg.Destroy() +func (f *MyFrame) evtColour(wx.Event) { + colourdlg := wx.NewColourDialog(f) + if colourdlg.ShowModal() == wx.ID_OK { + colour := colourdlg.GetColourData().GetColour() + currentPage := f.notebook.GetCurrentPage() + if currentPage != wx.NullWindow { + currentPage.SetForegroundColour(colour) + } + } + colourdlg.Destroy() } -func (f *MyFrame)evtFont(wx.Event) { - fontdlg := wx.NewFontDialog(f) - if fontdlg.ShowModal() == wx.ID_OK{ - font := fontdlg.GetFontData().GetChosenFont() - currentPage := f.notebook.GetCurrentPage() - if currentPage != wx.NullWindow { - currentPage.SetFont(font) - } - } - fontdlg.Destroy() +func (f *MyFrame) evtFont(wx.Event) { + fontdlg := wx.NewFontDialog(f) + if fontdlg.ShowModal() == wx.ID_OK { + font := fontdlg.GetFontData().GetChosenFont() + currentPage := f.notebook.GetCurrentPage() + if currentPage != wx.NullWindow { + currentPage.SetFont(font) + } + } + fontdlg.Destroy() } -func (f *MyFrame)evtOpenFile(wx.Event) { - path := wx.LoadFileSelector("Text", "*") - if path != "" { - textCtrl := wx.NewTextCtrl(f.notebook, wx.ID_ANY, "", wx.DefaultPosition, wx.DefaultSize, wx.TE_MULTILINE) - textCtrl.SetMinSize(wx.NewSizeT(600, 400)) - f.notebook.AddPage(textCtrl, path) - textCtrl.LoadFile(path) - textCtrl.SetFocus() - } +func (f *MyFrame) evtOpenFile(wx.Event) { + path := wx.LoadFileSelector("Text", "*") + if path != "" { + textCtrl := wx.NewTextCtrl(f.notebook, wx.ID_ANY, "", wx.DefaultPosition, wx.DefaultSize, wx.TE_MULTILINE) + textCtrl.SetMinSize(wx.NewSizeT(600, 400)) + f.notebook.AddPage(textCtrl, path) + textCtrl.LoadFile(path) + textCtrl.SetFocus() + } } -func (f *MyFrame)evtAbout(wx.Event) { - aboutinfo := wx.NewAboutDialogInfo() - aboutinfo.SetName("Dapeton") - aboutinfo.AddDeveloper("dontpanic") - aboutinfo.SetDescription("Dapeton is a notepad using wxGo.") - aboutinfo.SetWebSite("http://github.com/dontpanic92/wxGo") - aboutinfo.SetVersion("0.1") - wx.AboutBox(aboutinfo) - wx.DeleteAboutDialogInfo(aboutinfo) +func (f *MyFrame) evtAbout(wx.Event) { + aboutinfo := wx.NewAboutDialogInfo() + aboutinfo.SetName("Dapeton") + aboutinfo.AddDeveloper("dontpanic") + aboutinfo.SetDescription("Dapeton is a notepad using wxGo.") + aboutinfo.SetWebSite("http://github.com/dontpanic92/wxGo") + aboutinfo.SetVersion("0.1") + wx.AboutBox(aboutinfo) + wx.DeleteAboutDialogInfo(aboutinfo) } //Frame Init def func NewMyFrame() *MyFrame { - f := &MyFrame{} - f.Frame = wx.NewFrame(wx.NullWindow, -1, "Dapeton") - - f.statusbar = f.CreateStatusBar() - f.statusbar.SetStatusText("Welcome to wxWidgets") - - f.statusbar.SetFieldsCount(2) - f.statusbar.SetStatusText("This is a statusbar!", 1) - - f.menubar = wx.NewMenuBar() - menuFile := wx.NewMenu() - menuEdit := wx.NewMenu() - menuHelp := wx.NewMenu() - - menuItemOpenFile := wx.NewMenuItem(menuFile, wx.ID_ANY, "&Open...", "Open a File", wx.ITEM_NORMAL) - menuFile.Append(menuItemOpenFile) - menuItemExit := wx.NewMenuItem(menuFile, wx.ID_ANY, "&Exit", "Exit", wx.ITEM_NORMAL) - menuFile.Append(menuItemExit) - menuItemFont := wx.NewMenuItem(menuFile, wx.ID_ANY, "&Font...", "Select a Font", wx.ITEM_NORMAL) - menuEdit.Append(menuItemFont) - menuItemColour := wx.NewMenuItem(menuFile, wx.ID_ANY, "&Colour...", "Select a Colour", wx.ITEM_NORMAL) - menuEdit.Append(menuItemColour) - menuItemAbout := wx.NewMenuItem(menuFile, wx.ID_ANY, "&About", "About", wx.ITEM_NORMAL) - menuHelp.Append(menuItemAbout) - - f.menubar.Append(menuFile, "&File") - f.menubar.Append(menuEdit, "&Edit") - f.menubar.Append(menuHelp, "&Help") - f.SetMenuBar(f.menubar) - - - f.toolbar = f.CreateToolBar( wx.TB_HORIZONTAL, wx.ID_ANY ) - //f.toolbar.AddTool( wx.ID_ANY, "tool", wx.GetNullBitmap()) - f.toolbar.AddSeparator() - //f.toolbar.AddTool( wx.ID_ANY, "tool", wx.GetNullBitmap()) - f.toolbar.Realize() - - - mainSizer := wx.NewBoxSizer(wx.HORIZONTAL ) - f.SetSizer(mainSizer) - - f.notebook = wx.NewAuiNotebook(f, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.AUI_NB_DEFAULT_STYLE | wx.AUI_NB_CLOSE_BUTTON) - - mainSizer.Add(f.notebook, 1, wx.EXPAND, 5) - - textCtrl := wx.NewTextCtrl(f.notebook, wx.ID_ANY, "", wx.DefaultPosition, wx.DefaultSize, wx.TE_MULTILINE) - textCtrl.SetMinSize(wx.NewSizeT(600, 400)) - - f.notebook.AddPage(textCtrl, "Untitled", true) - textCtrl.SetFocus() - - f.Layout() - - wx.Bind( f, wx.EVT_MENU, f.evtFont, menuItemFont.GetId() ) - wx.Bind( f, wx.EVT_MENU, f.evtColour, menuItemColour.GetId() ) - wx.Bind( f, wx.EVT_MENU, f.evtOpenFile, menuItemOpenFile.GetId() ) - wx.Bind( f, wx.EVT_MENU, f.evtAbout, menuItemAbout.GetId() ) - - //wx.Unbind( f, wx.EVT_MENU, f.evtAbout, menuItemAbout.GetId() ) - - return f + f := &MyFrame{} + f.Frame = wx.NewFrame(wx.NullWindow, -1, "Dapeton") + + f.statusbar = f.CreateStatusBar() + f.statusbar.SetStatusText("Welcome to wxWidgets") + + f.statusbar.SetFieldsCount(2) + f.statusbar.SetStatusText("This is a statusbar!", 1) + + f.menubar = wx.NewMenuBar() + menuFile := wx.NewMenu() + menuEdit := wx.NewMenu() + menuHelp := wx.NewMenu() + + menuItemOpenFile := wx.NewMenuItem(menuFile, wx.ID_ANY, "&Open...", "Open a File", wx.ITEM_NORMAL) + menuFile.Append(menuItemOpenFile) + menuItemExit := wx.NewMenuItem(menuFile, wx.ID_ANY, "&Exit", "Exit", wx.ITEM_NORMAL) + menuFile.Append(menuItemExit) + menuItemFont := wx.NewMenuItem(menuFile, wx.ID_ANY, "&Font...", "Select a Font", wx.ITEM_NORMAL) + menuEdit.Append(menuItemFont) + menuItemColour := wx.NewMenuItem(menuFile, wx.ID_ANY, "&Colour...", "Select a Colour", wx.ITEM_NORMAL) + menuEdit.Append(menuItemColour) + menuItemAbout := wx.NewMenuItem(menuFile, wx.ID_ANY, "&About", "About", wx.ITEM_NORMAL) + menuHelp.Append(menuItemAbout) + + f.menubar.Append(menuFile, "&File") + f.menubar.Append(menuEdit, "&Edit") + f.menubar.Append(menuHelp, "&Help") + f.SetMenuBar(f.menubar) + + f.toolbar = f.CreateToolBar(wx.TB_HORIZONTAL, wx.ID_ANY) + //f.toolbar.AddTool( wx.ID_ANY, "tool", wx.GetNullBitmap()) + f.toolbar.AddSeparator() + //f.toolbar.AddTool( wx.ID_ANY, "tool", wx.GetNullBitmap()) + f.toolbar.Realize() + + mainSizer := wx.NewBoxSizer(wx.HORIZONTAL) + f.SetSizer(mainSizer) + + f.notebook = wx.NewAuiNotebook(f, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.AUI_NB_DEFAULT_STYLE|wx.AUI_NB_CLOSE_BUTTON) + + mainSizer.Add(f.notebook, 1, wx.EXPAND, 5) + + textCtrl := wx.NewTextCtrl(f.notebook, wx.ID_ANY, "", wx.DefaultPosition, wx.DefaultSize, wx.TE_MULTILINE) + textCtrl.SetMinSize(wx.NewSizeT(600, 400)) + + f.notebook.AddPage(textCtrl, "Untitled", true) + textCtrl.SetFocus() + + f.Layout() + + wx.Bind(f, wx.EVT_MENU, f.evtFont, menuItemFont.GetId()) + wx.Bind(f, wx.EVT_MENU, f.evtColour, menuItemColour.GetId()) + wx.Bind(f, wx.EVT_MENU, f.evtOpenFile, menuItemOpenFile.GetId()) + wx.Bind(f, wx.EVT_MENU, f.evtAbout, menuItemAbout.GetId()) + + //wx.Unbind( f, wx.EVT_MENU, f.evtAbout, menuItemAbout.GetId() ) + + return f } //Main Function func main() { - wx1 := wx.NewApp() - f := NewMyFrame() - f.Show() - wx1.MainLoop() - return + wx1 := wx.NewApp() + f := NewMyFrame() + f.Show() + wx1.MainLoop() + return } diff --git a/examples/src/docview/doc.go b/examples/src/docview/doc.go index 137a29d..4455b84 100644 --- a/examples/src/docview/doc.go +++ b/examples/src/docview/doc.go @@ -15,7 +15,7 @@ type overwrittenMethodsForTextEditDocument struct { func (self *overwrittenMethodsForTextEditDocument) OnCreate(path string, flags int) bool { if !wx.DirectorDocumentOnCreate(self.doc, path, flags) { - return false + return false } wx.Bind(self.GetTextCtrl(), wx.EVT_TEXT, self.OnTextChange, self.GetTextCtrl().GetId()) @@ -31,23 +31,23 @@ func (self *overwrittenMethodsForTextEditDocument) IsModified() bool { func (self *overwrittenMethodsForTextEditDocument) Modify(mod bool) { wx.DirectorDocumentModify(self.doc, mod) textCtrl := self.GetTextCtrl() - if textCtrl.Swigcptr() != 0 && !mod { + if textCtrl.Swigcptr() != 0 && !mod { textCtrl.DiscardEdits() } } func (self *overwrittenMethodsForTextEditDocument) DoSaveDocument(path string) bool { - return self.GetTextCtrl().SaveFile(path); + return self.GetTextCtrl().SaveFile(path) } func (self *overwrittenMethodsForTextEditDocument) DoOpenDocument(path string) bool { if !self.GetTextCtrl().LoadFile(path) { - return false + return false } - wx.DirectorDocumentModify(self.doc, false); + wx.DirectorDocumentModify(self.doc, false) - return true; + return true } func (self *overwrittenMethodsForTextEditDocument) OnTextChange(e wx.Event) { @@ -58,7 +58,7 @@ func (self *overwrittenMethodsForTextEditDocument) OnTextChange(e wx.Event) { func (self *overwrittenMethodsForTextEditDocument) GetTextCtrl() wx.TextCtrl { // Get our go object back view := viewTrack[self.doc.GetFirstView().Swigcptr()] - if (view == nil) { + if view == nil { return wx.ToTextCtrl(wx.NullWindow) } diff --git a/examples/src/docview/doctemplate.go b/examples/src/docview/doctemplate.go index 6c8cbd3..f871df5 100644 --- a/examples/src/docview/doctemplate.go +++ b/examples/src/docview/doctemplate.go @@ -16,8 +16,8 @@ func (self *MyTextDocTemplate) DoCreateView() wx.View { return NewMyTextView() } -func NewMyTextDocTemplate(docMan wx.DocManager, descr string, filter string, dir string, ext string, - docTypeName string, viewTypeName string) wx.DocTemplate { +func NewMyTextDocTemplate(docMan wx.DocManager, descr string, filter string, dir string, ext string, + docTypeName string, viewTypeName string) wx.DocTemplate { tdt := &MyTextDocTemplate{} dt := wx.NewDirectorDocTemplate(tdt, docMan, descr, filter, dir, ext, docTypeName, viewTypeName) tdt.dt = dt diff --git a/examples/src/docview/main.go b/examples/src/docview/main.go index 925f558..c3cb4b2 100644 --- a/examples/src/docview/main.go +++ b/examples/src/docview/main.go @@ -11,10 +11,10 @@ func NewMainFrame() *MainFrame { self := &MainFrame{} self.docMan = wx.NewDocManager() NewMyTextDocTemplate(self.docMan, "Text", "*.txt;*.text", "", "txt;text", - "Text Doc", "Text View") + "Text Doc", "Text View") self.Frame = wx.NewDocMDIParentFrame(self.docMan, wx.ToFrame(wx.NullWindow), wx.ID_ANY, - "wxGo DocView Sample"); + "wxGo DocView Sample") menuFile := wx.NewMenu() menuFile.Append(wx.ID_NEW) @@ -33,7 +33,6 @@ func NewMainFrame() *MainFrame { return self } - func main() { wx1 := wx.NewApp() frame := NewMainFrame() diff --git a/examples/src/docview/view.go b/examples/src/docview/view.go index 57eda34..b327ffe 100644 --- a/examples/src/docview/view.go +++ b/examples/src/docview/view.go @@ -6,7 +6,7 @@ import "github.com/dontpanic92/wxGo/wx" * It may be not intuitive because of the different design and machanism * between C++ and go, but the folowing code works, thanks to SWIG. * Here we take the wxView class as an example to see how it works. - * + * * We will deal with 3 things here: * 1. a director object * 2. overwrittenMethodsForView object that holds all overwritten @@ -19,7 +19,7 @@ import "github.com/dontpanic92/wxGo/wx" * holds all overwritten virtual methods, e.g. wxView::OnCreate, etc. * 2. The director object * We use wx.NewDirectorView to create a director object of wxView. A director - * is an object that is responsible for "routing". It contains TWO parts: + * is an object that is responsible for "routing". It contains TWO parts: * the C++ part, which is a sub class of the base class (here the base class * is wxView), and it implements ALL virtual functions that the base class has, * including pure virtual functions. The other part is the Go part, which contains @@ -68,8 +68,8 @@ var viewTrack map[uintptr]MyTextView = make(map[uintptr]MyTextView) // This struct will hold all overwritten virtual methods. type overwrittenMethodsForView struct { - view wx.View - textCtrl wx.TextCtrl + view wx.View + textCtrl wx.TextCtrl } func (self *overwrittenMethodsForView) OnCreate(doc wx.Document, flags int) bool { @@ -77,11 +77,11 @@ func (self *overwrittenMethodsForView) OnCreate(doc wx.Document, flags int) bool // Do NOT call view.OnCreate in this function - that will cause recursion // because this function is extactly the view.OnCreate! if !wx.DirectorViewOnCreate(self.view, doc, flags) { - return false + return false } - + document := doc.SwigGetDocument() - + subFrame := wx.NewDocMDIChildFrame(document, self.view, wx.ToDocMDIParentFrame(wx.AppGetInstance().GetTopWindow()), wx.ID_ANY, "Child Frame", wx.DefaultPosition, wx.NewSizeT(300, 300)) menuFile := wx.NewMenu() @@ -114,11 +114,11 @@ func (self *overwrittenMethodsForView) OnDraw(dc wx.DC) { func (self *overwrittenMethodsForView) OnClose(deleteWindow bool) bool { if !wx.DirectorViewOnClose(self.view, deleteWindow) { - return false + return false } self.view.Activate(false) - if (deleteWindow) { + if deleteWindow { self.view.GetFrame().Destroy() self.view.SetFrame(wx.ToFrame(wx.NullWindow)) } @@ -128,15 +128,15 @@ func (self *overwrittenMethodsForView) OnClose(deleteWindow bool) bool { } func (self *overwrittenMethodsForView) OnCopy(e wx.Event) { - self.textCtrl.Copy(); + self.textCtrl.Copy() } func (self *overwrittenMethodsForView) OnPaste(e wx.Event) { - self.textCtrl.Paste(); + self.textCtrl.Paste() } func (self *overwrittenMethodsForView) OnSelectAll(e wx.Event) { - self.textCtrl.SelectAll(); + self.textCtrl.SelectAll() } func (self myTextView) GetCtrl() wx.TextCtrl { diff --git a/examples/src/threadevent/main.go b/examples/src/threadevent/main.go index 9ee18ba..836e5e0 100644 --- a/examples/src/threadevent/main.go +++ b/examples/src/threadevent/main.go @@ -8,45 +8,45 @@ import "time" const UPLOAD_WORKER_ID = wx.ID_HIGHEST + 1 type MyFrame struct { - wx.Frame + wx.Frame } func (self *MyFrame) startUpload() { - i := 0 - for { - i = i % 101 - - threadEvent := wx.NewThreadEvent(wx.EVT_THREAD, UPLOAD_WORKER_ID) - threadEvent.SetInt(i) - self.QueueEvent(threadEvent) - - i += 1 - time.Sleep(time.Millisecond * 100) - } + i := 0 + for { + i = i % 101 + + threadEvent := wx.NewThreadEvent(wx.EVT_THREAD, UPLOAD_WORKER_ID) + threadEvent.SetInt(i) + self.QueueEvent(threadEvent) + + i += 1 + time.Sleep(time.Millisecond * 100) + } } func NewMyFrame() *MyFrame { - self := &MyFrame{} - self.Frame = wx.NewFrame(wx.NullWindow, -1, "Thread Event Test") - mainSizer := wx.NewBoxSizer(wx.HORIZONTAL) - g := wx.NewGauge(self, wx.ID_ANY, 100, wx.DefaultPosition, wx.NewSizeT(600, 40), 0) - self.SetSizer(mainSizer) - mainSizer.Add(g, 100, wx.ALL|wx.EXPAND, 50) - self.Layout() - - wx.Bind(self, wx.EVT_THREAD, func(e wx.Event) { - threadEvent := wx.ToThreadEvent(e) - g.SetValue(threadEvent.GetInt()) - }, UPLOAD_WORKER_ID) - - go self.startUpload() - return self + self := &MyFrame{} + self.Frame = wx.NewFrame(wx.NullWindow, -1, "Thread Event Test") + mainSizer := wx.NewBoxSizer(wx.HORIZONTAL) + g := wx.NewGauge(self, wx.ID_ANY, 100, wx.DefaultPosition, wx.NewSizeT(600, 40), 0) + self.SetSizer(mainSizer) + mainSizer.Add(g, 100, wx.ALL|wx.EXPAND, 50) + self.Layout() + + wx.Bind(self, wx.EVT_THREAD, func(e wx.Event) { + threadEvent := wx.ToThreadEvent(e) + g.SetValue(threadEvent.GetInt()) + }, UPLOAD_WORKER_ID) + + go self.startUpload() + return self } func main() { - wx1 := wx.NewApp() - f := NewMyFrame() - f.Show() - wx1.MainLoop() - return -} + wx1 := wx.NewApp() + f := NewMyFrame() + f.Show() + wx1.MainLoop() + return +} diff --git a/examples/src/webview/main.go b/examples/src/webview/main.go index a0aefff..99c948c 100644 --- a/examples/src/webview/main.go +++ b/examples/src/webview/main.go @@ -3,49 +3,48 @@ package main import "github.com/dontpanic92/wxGo/wx" type MyFrame struct { - wx.Frame - statusbar wx.StatusBar - toolbar wx.ToolBar - menubar wx.MenuBar - browser wx.WebView - - backBtn wx.ToolBarToolBase - forwardBtn wx.ToolBarToolBase - stopBtn wx.ToolBarToolBase - goBtn wx.ToolBarToolBase - - urlBox wx.TextCtrl + wx.Frame + statusbar wx.StatusBar + toolbar wx.ToolBar + menubar wx.MenuBar + browser wx.WebView + + backBtn wx.ToolBarToolBase + forwardBtn wx.ToolBarToolBase + stopBtn wx.ToolBarToolBase + goBtn wx.ToolBarToolBase + + urlBox wx.TextCtrl } -func (f *MyFrame)evtAbout(wx.Event) { - aboutinfo := wx.NewAboutDialogInfo() - aboutinfo.SetName("wxGo Web Explorer") - aboutinfo.AddDeveloper("dontpanic") - aboutinfo.SetDescription("A Web Explorer using wxGo.") - aboutinfo.SetWebSite("http://github.com/dontpanic92/wxGo") - aboutinfo.SetVersion("0.1") - wx.AboutBox(aboutinfo) - wx.DeleteAboutDialogInfo(aboutinfo) +func (f *MyFrame) evtAbout(wx.Event) { + aboutinfo := wx.NewAboutDialogInfo() + aboutinfo.SetName("wxGo Web Explorer") + aboutinfo.AddDeveloper("dontpanic") + aboutinfo.SetDescription("A Web Explorer using wxGo.") + aboutinfo.SetWebSite("http://github.com/dontpanic92/wxGo") + aboutinfo.SetVersion("0.1") + wx.AboutBox(aboutinfo) + wx.DeleteAboutDialogInfo(aboutinfo) } - func NewMyFrame() *MyFrame { - self := &MyFrame{} - self.Frame = wx.NewFrame(wx.NullWindow, -1, "wxGo Web Explorer", wx.DefaultPosition, wx.NewSizeT(800, 600)) - + self := &MyFrame{} + self.Frame = wx.NewFrame(wx.NullWindow, -1, "wxGo Web Explorer", wx.DefaultPosition, wx.NewSizeT(800, 600)) + // Statusbar - self.statusbar = self.CreateStatusBar() - self.statusbar.SetStatusText("Ready") - self.statusbar.SetFieldsCount(2) - self.statusbar.SetStatusText("Welcome to wxWidgets", 1) - + self.statusbar = self.CreateStatusBar() + self.statusbar.SetStatusText("Ready") + self.statusbar.SetFieldsCount(2) + self.statusbar.SetStatusText("Welcome to wxWidgets", 1) + // Menubar - self.menubar = wx.NewMenuBar() - menuHelp := wx.NewMenu() - menuItemAbout := wx.NewMenuItem(menuHelp, wx.ID_ANY, "&About", "About", wx.ITEM_NORMAL) - menuHelp.Append(menuItemAbout) - self.menubar.Append(menuHelp, "&Help") - self.SetMenuBar(self.menubar) + self.menubar = wx.NewMenuBar() + menuHelp := wx.NewMenu() + menuItemAbout := wx.NewMenuItem(menuHelp, wx.ID_ANY, "&About", "About", wx.ITEM_NORMAL) + menuHelp.Append(menuItemAbout) + self.menubar.Append(menuHelp, "&Help") + self.SetMenuBar(self.menubar) // Toolbar self.toolbar = self.CreateToolBar(wx.TB_HORIZONTAL, wx.ID_ANY) @@ -61,14 +60,14 @@ func NewMyFrame() *MyFrame { self.toolbar.Realize() // Content Area - mainSizer := wx.NewBoxSizer(wx.VERTICAL) + mainSizer := wx.NewBoxSizer(wx.VERTICAL) self.SetSizer(mainSizer) - + self.browser = wx.WebViewNew(self, wx.ID_ANY) - self.browser.LoadURL("http://www.wxwidgets.org") - self.browser.SetMinSize(wx.NewSizeT(600, 400)) - mainSizer.Add(self.browser, 1, wx.EXPAND, 5) - + self.browser.LoadURL("http://www.wxwidgets.org") + self.browser.SetMinSize(wx.NewSizeT(600, 400)) + mainSizer.Add(self.browser, 1, wx.EXPAND, 5) + self.Layout() // Menu event bindings @@ -85,12 +84,12 @@ func NewMyFrame() *MyFrame { self.statusbar.SetStatusText("Ready") self.UpdateState() }, self.browser.GetId()) - + // Toolbar tools event bindings wx.Bind(self, wx.EVT_TOOL, func(e wx.Event) { self.browser.GoBack() }, self.backBtn.GetId()) - + wx.Bind(self, wx.EVT_TOOL, func(e wx.Event) { self.browser.GoForward() }, self.forwardBtn.GetId()) @@ -112,21 +111,21 @@ func NewMyFrame() *MyFrame { // Frame event bindings wx.Bind(self, wx.EVT_IDLE, func(wx.Event) { - if (self.browser.IsBusy()) { + if self.browser.IsBusy() { self.toolbar.EnableTool(self.stopBtn.GetId(), true) } else { self.toolbar.EnableTool(self.stopBtn.GetId(), false) } }, wx.ID_ANY) - return self + return self } func (self *MyFrame) UpdateState() { self.toolbar.EnableTool(self.backBtn.GetId(), self.browser.CanGoBack()) self.toolbar.EnableTool(self.forwardBtn.GetId(), self.browser.CanGoForward()) - if (self.browser.IsBusy()) { + if self.browser.IsBusy() { self.toolbar.EnableTool(self.stopBtn.GetId(), true) } else { self.toolbar.EnableTool(self.stopBtn.GetId(), false) @@ -138,9 +137,9 @@ func (self *MyFrame) UpdateState() { //Main Function func main() { - wx1 := wx.NewApp() - f := NewMyFrame() - f.Show() - wx1.MainLoop() - return + wx1 := wx.NewApp() + f := NewMyFrame() + f.Show() + wx1.MainLoop() + return } diff --git a/examples/src/wxarrays/main.go b/examples/src/wxarrays/main.go index 90d6cc7..817d7e3 100644 --- a/examples/src/wxarrays/main.go +++ b/examples/src/wxarrays/main.go @@ -4,59 +4,59 @@ import "github.com/dontpanic92/wxGo/wx" import "strconv" type ListDialog struct { - wx.Dialog - listBox wx.ListBox + wx.Dialog + listBox wx.ListBox } func NewListDialog() *ListDialog { - self := &ListDialog{} - self.Dialog = wx.NewDialog(wx.NullWindow, -1, "wxArrays Test") - - self.SetSizeHints( wx.DefaultSize, wx.DefaultSize ) - - bSizer := wx.NewBoxSizer( wx.VERTICAL ) - - self.listBox = wx.NewListBox( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, []string{"aaa", "bbb"}, wx.LB_EXTENDED) - self.listBox.InsertItems([]string{"ccc"}, 1) - self.listBox.Set([]string{"ccc", "ddd"}) - bSizer.Add(self.listBox, 1, wx.ALL|wx.EXPAND, 5) - - strs := self.listBox.GetStrings() - self.listBox.Set(strs) - - button := wx.NewButton(self, wx.ID_ANY, "Select Other Files", wx.DefaultPosition, wx.DefaultSize, 0) - bSizer.Add( button, 0, wx.ALL|wx.EXPAND, 5 ) - - updateTitle := func() { - selections := make([]int, 0) - self.listBox.GetSelections(&selections) - self.SetTitle("wxArrays Test - " + strconv.Itoa(len(selections)) + " item(s) selected") - } - - wx.Bind(self, wx.EVT_LISTBOX, func(e wx.Event) { - updateTitle() - }, self.listBox.GetId()) - - wx.Bind(self, wx.EVT_BUTTON, func(e wx.Event) { - fd := wx.NewFileDialogT(wx.NullWindow, "Select Files", "", "", "*", wx.FD_MULTIPLE, wx.DefaultPosition, wx.DefaultSize, "Open") - if fd.ShowModal() != wx.ID_CANCEL { - list := make([]string, 0) - fd.GetFilenames(&list) - self.listBox.Set(list) - updateTitle() - } - }, button.GetId()) - - self.SetSizer(bSizer) - self.Layout() - self.Centre(wx.BOTH) - - return self + self := &ListDialog{} + self.Dialog = wx.NewDialog(wx.NullWindow, -1, "wxArrays Test") + + self.SetSizeHints(wx.DefaultSize, wx.DefaultSize) + + bSizer := wx.NewBoxSizer(wx.VERTICAL) + + self.listBox = wx.NewListBox(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, []string{"aaa", "bbb"}, wx.LB_EXTENDED) + self.listBox.InsertItems([]string{"ccc"}, 1) + self.listBox.Set([]string{"ccc", "ddd"}) + bSizer.Add(self.listBox, 1, wx.ALL|wx.EXPAND, 5) + + strs := self.listBox.GetStrings() + self.listBox.Set(strs) + + button := wx.NewButton(self, wx.ID_ANY, "Select Other Files", wx.DefaultPosition, wx.DefaultSize, 0) + bSizer.Add(button, 0, wx.ALL|wx.EXPAND, 5) + + updateTitle := func() { + selections := make([]int, 0) + self.listBox.GetSelections(&selections) + self.SetTitle("wxArrays Test - " + strconv.Itoa(len(selections)) + " item(s) selected") + } + + wx.Bind(self, wx.EVT_LISTBOX, func(e wx.Event) { + updateTitle() + }, self.listBox.GetId()) + + wx.Bind(self, wx.EVT_BUTTON, func(e wx.Event) { + fd := wx.NewFileDialogT(wx.NullWindow, "Select Files", "", "", "*", wx.FD_MULTIPLE, wx.DefaultPosition, wx.DefaultSize, "Open") + if fd.ShowModal() != wx.ID_CANCEL { + list := make([]string, 0) + fd.GetFilenames(&list) + self.listBox.Set(list) + updateTitle() + } + }, button.GetId()) + + self.SetSizer(bSizer) + self.Layout() + self.Centre(wx.BOTH) + + return self } func main() { - wx.NewApp() - dlg := NewListDialog() - dlg.ShowModal() - dlg.Destroy() + wx.NewApp() + dlg := NewListDialog() + dlg.ShowModal() + dlg.Destroy() }