Giter Club home page Giter Club logo

wxformbuilder's Introduction

wxFormBuilder

Windows Status Linux Status macOS Status

wxFormBuilder is a GUI builder for the wxWidgets framework.

Code generation is supported for C++, Python, Lua and PHP. Additionally, the import and export of XRC code is possible. To support additional widgets, custom plugins can be used.

wxFormBuilder runs on Windows, various Linux distributions and macOS.

Download Binaries

Install from Source

Building from source requires the fairly recent CMake version 3.21. Most Linux distributions don't contain this version in their package repositories currently, the CMake website offers binary downloads for multiple platforms. wxFormBuilder uses the wxWidgets framework itself, it is highly recommended using the current stable version 3.2.x. The previous stable version 3.0.x is known to cause multiple issues and should be avoided.

Windows

Building on Windows has been tested with MSVC, Mingw-w64 and MSYS2 in 32 bit and 64 bit mode. Using MSYS2 is a bit more convenient because it offers the required libraries precompiled and CMake can find them automatically. Using the other compilers it might be necessary to specify the library locations manually. The following instructions use MSYS2.

Install MSYS2 and open a MINGW32 or MINGW64 shell.

Installing the Prerequisites:

pacman -Syu
pacman -S ${MINGW_PACKAGE_PREFIX}-toolchain ${MINGW_PACKAGE_PREFIX}-cmake ${MINGW_PACKAGE_PREFIX}-make base-devel git
pacman -S ${MINGW_PACKAGE_PREFIX}-wxWidgets3.2 ${MINGW_PACKAGE_PREFIX}-boost

Building:

git clone --recursive https://github.com/wxFormBuilder/wxFormBuilder
cd wxFormBuilder
cmake -S . -B _build -G "MSYS Makefiles" --install-prefix "$PWD/_install" -DCMAKE_BUILD_TYPE=Release
cmake --build _build --config Release -j `nproc`
cmake --install _build --config Release

Running:

_install/wxFormBuilder

Linux

Building on Linux has been tested on Ubuntu and Fedora with GCC in 64 bit mode but should work on many more distributions.

Ubuntu

Installing the Prerequisites:

sudo apt install libwxgtk3.2-dev libwxgtk-media3.2-dev libboost-dev cmake make git

Building:

git clone --recursive https://github.com/wxFormBuilder/wxFormBuilder
cd wxFormBuilder
cmake -S . -B _build -G "Unix Makefiles" --install-prefix "$PWD/_install" -DCMAKE_BUILD_TYPE=Release
cmake --build _build --config Release -j `nproc`
cmake --install _build --config Release

Running:

_install/bin/wxformbuilder

Fedora

Installing the Prerequisites:

sudo dnf install wxGTK-devel wxGTK-media boost-devel cmake make git

Building:

git clone --recursive https://github.com/wxFormBuilder/wxFormBuilder
cd wxFormBuilder
cmake -S . -B _build -G "Unix Makefiles" --install-prefix "$PWD/_install" -DCMAKE_BUILD_TYPE=Release
cmake --build _build --config Release -j `nproc`
cmake --install _build --config Release

Running:

_install/bin/wxformbuilder

macOS

Building on macOS has been tested with Clang in 64 bit mode using Xcode and make. The required libraries can be installed via Homebrew.

Installing the Prerequisites:

brew update
brew install wxwidgets boost cmake make git

Building:

git clone --recursive https://github.com/wxFormBuilder/wxFormBuilder
cd wxFormBuilder
cmake -S . -B _build -G "Unix Makefiles" --install-prefix "$PWD/_install" -DCMAKE_BUILD_TYPE=Release
cmake --build _build --config Release -j `sysctl -n hw.ncpu`
cmake --install _build --config Release

Running:

open _install/wxFormBuilder.app

Build custom plugins

For building custom wxFormBuilder plugins, refer to the SDK documentation.

wxformbuilder's People

Contributors

a-atalla avatar acolomb avatar anode85 avatar cedricboudinet avatar davidgiven avatar eldarkg avatar jacobospain avatar jhasse avatar jmoraleda avatar kvaz1r avatar luzpaz avatar mehw avatar mengguang avatar michallukowski avatar muellermartin avatar newpagodi avatar nohal avatar omniblade avatar osnipezzini avatar patlkli avatar randalphwa avatar rjpcomputing avatar ryanjmulder avatar shamtam avatar sodevel avatar stirwl avatar tomay3000 avatar usyer avatar wannianhong avatar wsu-cb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wxformbuilder's Issues

Better Linux support

Hello.

I'd like to test the new alpha release under Linux,
which is awfull first because there are no Linux
executables (like rpm or deb) and second because you
supply the source in the rather unusual 7zip format.
Would you mind switching to tar.gz, adding autoconf
capabilities and providing Linux packages?

Regards,
Björn!

Reported by: *anonymous

proportion not copied

What steps will reproduce the problem?

Step 1 Create a new Project with a Frame that has a BoxLayout
Step 2 Add a Panel container to the BoxLayout and set its proportion to 0 and its border to 1
Step 3 Select the panel in the Object Tree, press CTRL-C and then CTRL-V
What is the expected output? What do you see instead? I expect the copied Panel to have proportion 0 and border 1, instead it has proportion 1 and border 5

Reported by: jfouche

wxDataViewCtrl support needs to be added

There is a control in wxWidgets named wxDataViewCtrl which is a superset of wxListCtrl in terms of functionality and features. It would be great to see support for this in wxFormBuilder. Specifically I would like to see XRC support for this.

Reported by: jfouche

app crashes on new form with 'BadMatch' X error in kubuntu 9

What steps will reproduce the problem?

Install wxFormBuilder on Kubuntu 9.10 from repository.
Run wxFormBuilder.
Navigate to FORMS tab and select any of the three form types.
What is the expected output? What do you see instead?

wxFormBuilder immediately crashes regardless of weather the project is saved prior to creating a form or no. Here are the last few lines of strace including the output error message:
poll([{fd=10, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=10, revents=POLLOUT}]) writev(10, [{”\22\0\7\0\376\5\300\2\366\0\0\0!\0\0\0 \4\7\0\1\0\0\0\1\0\300\2\22 \0\7\0”..., 3256}, {NULL, 0}, {”“, 0}], 3) = 3256 poll([{fd=10, events=POLLIN}], 1, -1) = 1 ([{fd=10, revents=POLLIN}]) read(10, “\34\322\347C\376\5\300\2\22\1\0\0\340<d\27\0\212\270\17\0\0\0\0\20\300 \304\2\0\0\0\0”..., 4096) = 544 open(”/usr/share/X11/XErrorDB”, O_RDONLY) = 11 fstat(11, {st_mode=S_IFREG|0644, st_size=41481, ...}) = 0 brk(0x1dd1000) = 0x1dd1000 read(11, “! $Xorg: XErrorDB,v 1.3 2000/08/”..., 41481) = 41481 close(11) = 0 brk(0x1df2000) = 0x1df2000 write(2, “The program ‘wxformbuilder’ rece”..., 575The program ‘wxformbuilder’ r eceived an X Window System error. This probably reflects a bug in the program. The error was ‘BadMatch (invalid parameter attributes)’.

(Details: serial 17417 error_code 8 request_code 151 minor_code 5)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the --sync command line
option to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)
) = 575 exit_group(1) = ?

No errors were found in the syslog or the Xorg.0.log. Attached is the xorg.conf for this system. It’s a triple head setup using dual NVIDIA cards and so is using xinerama rather than Xrandr which remains incapable of true triplehead support. All drivers were installed via standard kubuntu repositories. All software on the system was installed from the standard and backports repos with the exception of the chromium browser from http://ppa.launchpad.net/chromium-daily/ppa/ubuntu. At this point wxFormBuilder is unusable as it crashes immediately upon creating a new form.

Please use labels and text to provide additional information.

Reported by: jfouche

Localization in code generation doesn't work for wildcards i

What steps will reproduce the problem?

Start wxFormBuilder (I did with 3.0.57 Unicode build for Ubuntu 8.04) and create a project with internalization support so wxFormBuilder generates C++ code via _(”...”) macros...
Create any GUI which contains at least one wxFilePickerCtrl (maybe wxDirPickerCtrl also is affected?)
Setup things in the wxFilePickerCtrl like wildcards, title, flags, etc.
Generate the C++ code
Open the code, you’ll find something like this:
TestFilePicker = new wxFilePickerCtrl( NotebookSettings, wxID_ANY, wxEmptyString, _("Select a WAV file"), wxT("WAVE files (.wav)|.wav|All files (.)|."), wxDefaultPosition, wxDefaultSize, wxFLP_CHANGE_DIR|wxFLP_DEFAULT_STYLE|wxFLP_FILE_MUST_EXIST|wxFLP_OPEN );
SettingsSizer->Add( TestFilePicker, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL|wxRIGHT, 5 );
What is the expected output? What do you see instead?

Expected output with activated internalization should be:

[...] _("WAVE files (.wav)|.wav|All files (.)|.") [...]
so that the wildcard descriptions also get translated. What I’m seeing instead is:

[...] wxT("WAVE files (.wav)|.wav|All files (.)|.") [...]
which doesn’t call the gettext () functions...

Please use labels and text to provide additional information.

Fixing this should be straight forward, since all to be done is to check whetever internalization is active and if this is the case, replace the wxT() for the wildcard part with _()

Here is a patch

Reported by: jfouche

buttons overlap

when you reduce the size of the program (resize), and
click the left spin control to move the tool button in
common component palette, the spin control and tool
buttons overlap.
<img src="http://www.priyank.in/temp/tabbar.jpg" />

Reported by: priyank_bolia

Undo & Redo don't work with Cut&Paste

When you cut an object and you make undo, the operation
seem to be successful but the clipboard maintain the
object cutted.

Then, if you make paste the object is duplicated with
the same reference!.

Reported by: josehurt

build errors on Fedora 12 w/ gcc 4.4.3

On Fedora 12 with gcc 4.4.3 I encountered the following build issues:

create_build_files.sh is written in MSDOS format (LF+CR) and fails to run because of the ^M on the shabang line. It needs to be converted to unix format using: “dos2unix create_build_files.sh”. This likely effects all Linux/Unix builds.

Two source files had build errors due to missing header files (this is likely to be compiler-specific):

sdk/tinyxml/ticpp.cpp needs:

#include <typeinfo>
src/dbg_stack_trace/stack.cpp needs:

#include <cstdlib> (for free())
#include <cstring> (for strcmp())

Reported by: jfouche

Render empty Sizers in the Editor.

I would really like to be able to see my empty sizers visually within the Form Editor. This is something I’ve already seen in wxGlade and thought it was a really good idea, and really helps users layout the controls on a container.

I’ve attached a screen shot from wxGlade to show what I’m talking about. To give a brief description, all empty sizers/sizeritems are rendered with some default texture/pattern (in the case of wxGlade, slanted lines) to indicate the area it would occupy. This allows the user to actually see the sizer layout visually all through development. I think this would really assist users in form design.

Reported by: jfouche

Allow the user to control what sizing and position flags and

When adding controls, the positioning flags (alignment, shape and border area’s) and values (border size and proportion) have hardwired values. Not infrequently, these values are unsuitable and the user either has to alter these flags after adding each control, or add a large number of controls and then go back and set flags as appropriate.

This is particularly true when a user would prefer a default border size other then the default of 5, as every control placed must then altered.

It would be preferable if it was possible to set what the default values should be and what flags should be set. Ideally, these defaults could be changeable on the fly so that one can quickly lay down a dialogue if one already has a design worked out and knows what flags should be set.

In a perfect world, these flags would be set by control type, but with some mechanism to unify these flags (if appropriate) across control types.

Reported by: jfouche

wx.listCtrl and wx.EVT_LIST_ITEM_DESELECTED event

What steps will reproduce the problem?

Using wxFormBuilder in Linux Version 3.1.64-beta
I create a wxlistCtrl named myListCtrl with a OnListItemDeselected event
In the python code, I have:

self.name.Bind( wx.EVT_LIST_ITEM_DESELECTED, self.onDeselect)
instead of:

self.myListCtrl.Bind( wx.EVT_LIST_ITEM_DESELECTED, self.onDeselect)
the others events work well:

self.myListCtrl.Bind( wx.EVT_LIST_COL_CLICK, self.onCol )
self.name.Bind( wx.EVT_LIST_ITEM_DESELECTED, self.onDeselect )
self.myListCtrl.Bind( wx.EVT_LIST_ITEM_SELECTED, self.onChange )

Reported by: jfouche

Window size/position on next launch is not properly restored

- What steps will reproduce the problem? 1. Launch wxformbuider. Size the window as you would like it to be. 2. Quit wxformbuilder. 3. Launch wxformbuilder. This is where the window size is not what was set in step 1.

- What is the expected output? What do you see instead? I expect the window to be as i left it, instead it seems to grow towards the bottom of the screen, making it larger and larger, for every time i restart the application.

- Please use labels and text to provide additional information. Reported version is not “SVN Head”, but in fact the newly released 3.1. However, that version is not available in the (bug report) dropdown menu

Reported by: jfouche

Scrolled Design Window

If you are designing a large frame or dialog, it may not fit
completely inside the design window on all screen
resolutions. Being able to scroll the design window
would be the only way to view the bottom or right side of
the dialog being designed. The design window does not
currently scroll.

Reported by: toxicthebunny

XRC exporting

Hi, i've downloaded the last (June) version of
wxFormbuilder, and a missing feature is exporting to
XRC format.

Thank you.

Reported by: nobody

assertion in shared_ptr

Hi,

when I try to import the attached XRC file, I get the
following error:

File: ../libs/boost_1_31_0_smart_ptr/boost/shared_ptr.hpp
Line: 254

Expression: px != 0

Regards,
Mark

Reported by: mjscod

Doesn't know of wxRESERVE_SPACE_EVEN_IF_HIDDEN flag

Tried to add wxRESERVE_SPACE_EVEN_IF_HIDDEN sizeritembase flag property

A message ‘! flag: Unknown flag identifier “wxRESERVE_SPACE_EVEN_IF_HIDDEN”’ is shown in the status bar

This flag is relatively new (Available from wx version 2.8.8)

Reported by: jfouche

Save Sizer Names in XRC

Can you change wxFormBuilder, that it saves the Name of each Sizer also in the XRC file, like it is witch Buttons or StaticTexts. Because it is needed to load the Sizer from the XRC file witch the following code:

wxStaticBoxSizer sizer = (wxStaticBoxSizer)this->FindWindow(XRCID("sbSizTest"));
so you need to change the XRC code from

<object class="wxStaticBoxSizer">
to

<object class="wxStaticBoxSizer" name="sbSizTest">
Thanks

Reported by: jfouche

New line char on Mac OS X is only a 0x0D

What steps will reproduce the problem?

Step 1
Generate CPP code.

Step 2
Compile the generated sources will bring warnings: “warning: no newline at end of file”

What is the expected output? What do you see instead? The new line char should be ‘\n’ instead of ‘\r’.

Reported by: jfouche

Hide Non-XRC properties when not using C++ code_generation.

I would like to only see widget properties that can be used with the currently selected code_generation settings. For example, out of the 3 different size properties for most widgets: size, minimum_size, and maximum_size, only the size attribute is carried over to the XRC file. So if the only code_generation setting I have selected is XRC, minimum_size and maximum_size should not even show up in the property list.

I believe DialogBlocks also has this feature, and it is extremely useful so that the user does not waste their time messing with non-XRC transferable properties when all they want to do is generate an XRC layout.

Reported by: jfouche

wxSplitterWindow idle event handler prevents setting sash po

Problem arises when trying to set sash position of wxSplitterWindow in constructor of inheritet class when using generated CPP Code.

Problematic parts of generated code

for .h file:
void m_splitterPlotOnIdle( wxIdleEvent& )
{
m_splitterPlot->SetSashPosition( 0 );
m_splitterPlot->Disconnect( wxEVT_IDLE, wxIdleEventHandler( AusgabeBasis::m_splitterPlotOnIdle ), NULL, this );
}
for .cpp file:
m_splitterPlot = new wxSplitterWindow( m_panelPlot, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_3D );
m_splitterPlot->SetMinimumPaneSize( 1 );
m_splitterPlot->Connect( wxEVT_IDLE, wxIdleEventHandler( AusgabeBasis::m_splitterPlotOnIdle ), NULL, this );
m_scrolledPlotAuswahl = new wxScrolledWindow( m_splitterPlot, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL );
m_scrolledPlotAuswahl->SetScrollRate( 5, 5 );
m_plot = new mpWindow( m_splitterPlot, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
m_splitterPlot->SplitVertically( m_scrolledPlotAuswahl, m_plot, 0 );
Problematic part is the idle event handler, wich is called some time after the constructor of inherited class finished and therefore will overwrite changed sash position.

Reference

Problem seems to be introduced with changes from 02-28-2007 Version 3.00.25 (Beta 3): “Now connecting an event handler to idle events for splitter windows to reliably set the initial sash position” Changelog

Suggestions for fix

Remove on idle handler and use parameter of SplitVertically. May reintroduce bug the change was a fix for (which one? could not find one in tracker)
Make use of on idle handler optional for user. Seems not a good idea.
Only use on idle handler if initial sash position is not 0.

Reported by: jfouche

wxLB_OWNERDRAW

wxLB_OWNERDRAW is missing in the ListBox styles.

Reported by: belgabor

rowspan bug -> Freeze

Before begin... Sorry bad english plx I´m Brazilian and I wanna help WxFB because I like it !

Well lookin into the ScreenShot sent, we see a PC “lock” ( “stop”, “stopped” sorry again ) with a BUG in WxFB.

This BUG happens when we add a wxGridBagSizer and after a WxButton and set gbSizerItem→ROWSPAN of the WxButton added to 0.

I hope have helped the WxFB comunity.

thanks!

Reported by: jfouche

Items management by folders

I would be helpful to have the opportunity to add folders within the project structure, so we can divide our top-level items into logic categories (e.g. Views, Dialogs, Mains panels, etc. Anything the user can think, actually). This folder structure would have absolutly no impact on the code- or XRC-generation, but it would make project management really easier.

Reported by: jfouche

wxGridBagSizer - colspan issue

etting the colspan of a wxGridBagSizer to 0 will hang the application and make it eat cpu/memory.

Sorry, I forgot to mention, that this is the (gbsizeritem) child, not the wxGridBagSizer control itself

Reported by: jfouche

Empty bitmap file name

When relate_path is true for a project, bitmap filename
strings are empty in generated C++ code. This applies
to both wxStaticBitmap and wxBitmapButton.

Reported by: bitman

Add Support for wxGridBagSizer

The wxGridBagSizer is useful since it works in a similar
manner to the wxGridSizer or wxFlexGridSizer but also
allows rows and columns to be spanned. This is
included in the recent releases of wxWidgets and should
already be supported by XRC.

Reported by: toxicthebunny

Subclass attribute for the custom control is not generated i

What steps will reproduce the problem?

Create custom control
Add some text for subclass property
Switch to XRC tab
Verify that custom control has no subclass attribute
This is non-intuitive because the user would expect that if data has been entered in the subclass property of the control that it should be present in the output of any format that supports it. wxFB appears to support the subclass feature for every other control.

Reported by: jfouche

Python code styling isssues

When generating Python code with the 3.1.61 beta, there are some code styling error:

If “id” is not specified, is possible to omit it, instead of using wx.ID_ANY.
Same applies to an empty title (why use wx.EMPTY_STRING?) and the default position and/or style.
It would be better to always use keyword arguments, also in the controls code.
As with XRC the first sizer is not necessary and can be skipped.
There are empty spaces that should be removed (see attached file).
Size can be specified without wx.Size(), just use a tuple!.
I attach a file with both the generated code and how it should be.

Reported by: jfouche

Incorrect Name for Tree Controls

When a new tree control item is created, it is incorrectly
named as "htmlWin" which would indicate an HTML
window.

Reported by: toxicthebunny

Add an Auto-Hide option to the [Object Tree] and [Object Pro

One of the issues with using wxFormBuilder is that the Editor Panel shares window space with the Object Tree and Object Properties. Because of this, when creating/editing large frames/dialogs/panels you are not able to see the entire object (or whatever is currently in the editor window) on screen, which is quite annoying.

I think there is a relatively easy solution to fix this problem. Turn these component panels into Auto-Hide panels like in Visual Studio. To give a brief description, each of these panels would start out in a minimized state until they receive a MouseEnter event at which point the panel will expand to the normal size; then, when it receives the MouseLeave event it would return the panel to the minimized size. Additionally, there could be a lock/unlock button on each panels titlebar that would lock the panel in the ‘restored’ state so that users could choose which panels, if any, they want visible at all times.

This would allow the maximum amount of window spaced, as desired by the user, for the Editor Window.

Reported by: jfouche

menu

clicking menu/file/exit not working. examined source
appears id_quit missing from event table. I haven't
download tinyxml or boost so I cannot compile to fix.

Good work though. I am looking forward to some more
plugins to expand the functionality.

Thanks ,
Steve
[email protected]

Reported by: *anonymous

App freezes on resize

What steps will reproduce the problem?

Step 1 Using wxFormBuilder in Mac Version 3.0.57 and MacOs 10.5.3 on a 1.83 GHz Intel Core Duo Macbook with 2GB RAM
Step 2 Open or create a Project add a frame
Step 3 resize the frame with the mouse
What is the expected output? What do you see instead?

I expect the frame to be resized correctly, but sometimes - well, pretty often - the app freezes. If you should need it, i can kill the app and send you some details or maybe there is an error log ?

Please contact me if you have any questions concerning the problem.

Reported by: jfouche

Bitmap relative path

Migrating this bug from the old bug tracker.

I have my source located in a directory called "Source", my final executable builds to a directory called "Bin", and images are found in "Bin/Data/Images"; this means that any paths in the automatically generated code look like "../Bin/Data/Icons/" due to it exporting the paths relative to the code export location.

This actually works ok providing that the executable is ALWAYS in a directory called "Bin", my suggestion would have been to have two paths, one for where you wanted the exported code to be sent (in my case "Source"), and another for your executables working directory (in my case "Bin"),

Then the exported code could use wxTheApp->GetPath() followed by the image location relative to the working directory set.

Example:
working path = Bin/
image path = Bin/Data/Images/add.png
Exported code: wxTheApp->GetPath() + wxT("/Data/Images/add.png")

Reported by: *anonymous

Retain control property values and flags when coping and pas

When a control (a wxTextControl, for example) is copied and pasted, the information under wxTextControl (name, style etc) and wxWindow information (size, font etc) is retained. However, the sizer information in sizeritem and sizeritembase is reset to the default values.

It would be preferable that, when copying a control, that all of it’s properties be retained - including positioning and sizing.

Reported by: jfouche

Ruta del archivo generado (XRC)

Si no se ingresa una ruta completa en la la propiedad
"path" del proyecto abierto, cuando se genera el
archivo xrc, es creado en la raíz de la unidad donde
está instalado wxFB. Pienso que debería usar como ruta
base la del archivo de proyecto. El programa tompoco
acepta rutas relativas (al archivo de proyecto).

Gracias,

Leo

Reported by: *anonymous

Validation of identifiers and class names

Class names and other identifiers (commonly edited in the “name” property field) should be verified for correct form defined in C/C++ standard. For example, now I can set class or pointer name to “My class” or “123variable name” which is not, obviously, correct name.

Reported by: jfouche

Working Directory for relative paths

When using resources with relative paths in wxFormBuilder at present those resources are assumed to be relative to the path that contains the source files rather than being relative to the working path of the application, which is the correct method.

wxFormBuilder needs a new parameter in it’s Project settings to allow for working directories so that relative paths to resources are actually usable.

Reported by: jfouche

same event name for different events does not compile using

What steps will reproduce the problem? 1. Create two elements (gamma and gradient) in the same frame or panel, with different kind of events (example: a checkbox (commandEvent) and a spinctrl (spinEvent) ) 2. Since you want to update something when either of those values change you call the respective event the same: OnSpinCtrl → OnChange and OnCheckbox → OnChange 3. Create C++ Code and compile it using GCC 4.4 (standard compiler on Ubuntu)

What is the expected output? What do you see instead? Expected: Well it should work! Instead GCC 4.4 throws following error: error: invalid static_cast from type ‘<unresolved overloaded function type>’ to type ‘void (wxEvtHandler::)(wxSpinEvent&)’ or error: invalid static_cast from type ‘<unresolved overloaded function type>’ to type ‘void (wxEvtHandler::)(wxCommandEvent&)’

for following lines respectively:

gamma→Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( ImproveContoursSidebar_::OnChange ), NULL, this ); gradient→Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ImproveContoursSidebar_::OnChange ), NULL, this );

Problem: The function OnChange is overloaded for either event. Passing the function pointer does not tell the compiler which one of the functions to use. The macros wxSpinEventHandler and wxCommandEventHandler would later cast those function pointers to ‘void (wxEvtHandler::)(wxSpinEvent&)’ and ‘void (wxEvtHandler::)(wxCommandEvent&)’ respectively.

Walkarounds: 1. Just rename the events so that there are not two types of events called the same (OnChange → OnChangeSpin, OnChangeCommand). You can still use the same event name for all the elements that actually use the same type of event. The problem is only occurring when the function is happened to be overloaded.

  1. Save the function pointer in a variable first (because then you have to tell the variable what type of function pointer it is) and then pass it. Problem with this walkaround: You cannot use the macros wxSpinEventHandler and wxCommandEventHandler because they take the reference of the passed argument and to save the variable you have to save the reference of the function pointer already and so the macro will create a reference to the reference to the function which will result in another invalid static cast.

Reported by: jfouche

wxFormbuilder on Mac OSX 4 crashes

  1. I have downloaded the actual Mac OS X build 2. I have reinstalled libiconv Version 1.12 (because wxFB claimed for it) 3. I try to launch the wxFB.app

Result: The app crashes and I get an Apple crash report. log Version of the report is attached.

2009-02-13 09:33:40 +0100

Link (dyld) error:

Symbol not found: _kUTTypeTIFF

Referenced from: /Applications/Development/wxFormBuilder/wxFormBuilder.app/Contents/MacOS/../libs/libwx_macu_core.dylib
Expected in: /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices

Reported by: jfouche

Namespace-Support not working properly

The namespace-support as requested in feature request FS#156 is not working properly, I think. My compiler (gcc as well as vc9) complains about missing constructors and destructors.

I think, it’s not the right way to use the “using namespace XYZ”-clause in the cpp. I rather suggest, using the enclosing version instead, like it is done with the header file.

namespace XYZ {
...
}
You should be able to reproduce the problem by simply using some namespace-setting in your formbuilder application properties. Maybe, it’s moreover necessary to create an additional derived class, but I rather don’t think so.

Reported by: jfouche

Crash when setting the style “wxGA_VERTICAL” to a gauge

When setting the style “wxGA_VERTICAL” to a gauge, wxFormBuilder crashes.

I reproduced this crash with V3.0 RC7 and RC8. The OS was a Ubuntu Gutsy 7.10 i386.

What steps will reproduce the problem?

Open wxFormBuilder
Create new panel (click Tab “Forms”→Panel)
Add BoxSizer to Panel (click Tab “Layout”→wxBoxSizer)
Add Gauge to to Sizer (click Tab “Common”→wxGauge)
Add style “wxGA_VERTICAL” to the gauge (object properties→style→click wxGA_VERTICAL)
=⇒ wxformbuilder quits imediatally, output on the console is then:

The program 'wxformbuilder' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadAlloc (insufficient resources for operation)'.
(Details: serial 158309 error_code 11 request_code 53 minor_code 0)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the --sync command line
option to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)
It doesn’t matter whether the default style “wxGA_HORIZONTAL” is unset.

Reported by: jfouche

Add images relative to wxTheApp->GetPath()

I have a problem with the files loaded from relative paths and bitmap buttons/images.

Imagine this situation:

- You create a new dialog in wxFB. You place a bitmap button with an image “./MyImage.png”. You create the .H.

- In your application, you use the .H created by wxFB.

- Then, the application asks the user to select a file using a wxFileDialog call. The current folder changes...

- Now, I open the wxFB dialog using the “./MyImage.png”... and voilá! A file not found assert is fired... That’s because the current folder changed and, like I specified a “./MyImage.png” as bitmap button’s icon then the error appears correctly...

SOLUTION: Add an option in wxFB to use relative-to-application image paths. For example, I could specify for the bitmap button created in wxFB a path like “{AppPath}/MyImage.png”. Then, the dialog’s constructor on your wxFB .CPP output can call something like

this->MyButton->SetIcon(wxTheApp->GetPath()+wxT("/MyImage.png"));
Thanks.

Reported by: jfouche

adds 'public' to python class when doing 'subclass'

What steps will reproduce the problem?

Create a project to generate python code
Add a panel to the project, select the panel object
Under Object Properties → ‘subclass’ add ‘MyCustomPanel’ as the subclass name
What is the expected output? What do you see instead? expected:

class MyPanel4 ( MyCustomPanel ):
got:

<code>class MyPanel4 ( public MyCustomPanel ):</code>
The word ‘public’ is a syntax error in Python.

Reported by: jfouche

include with backslash

Hello,

If I insert a bitmap (e.g. wxBitmapButton) and assign a file, the include will be generated as a file_path with backslashes.
Example:
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Feb 1 2007)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////

#include "wx/wxprec.h"

#ifdef BORLANDC
#pragma hdrstop
#endif //BORLANDC

#ifndef WX_PRECOMP
#include <wx/wx.h>
#endif //WX_PRECOMP

#include "noname.h"

#include "..\images\foobar.xpm"

///////////////////////////////////////////////////////////////////////////

MyFrame1::MyFrame1( wxWindow* parent, int id, wxString title, wxPoint pos, wxSize size, int style ) : wxFrame( parent, id, title, pos, size, style )
{
this->SetSizeHints( wxDefaultSize, wxDefaultSize );

wxBoxSizer* bSizer1;
bSizer1 = new wxBoxSizer( wxVERTICAL );

m_bpButton1 = new wxBitmapButton( this, wxID_ANY, wxBitmap( chipit_manager_xpm ), wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW );
bSizer1->Add( m_bpButton1, 0, wxALL, 5 );

this->SetSizer( bSizer1 );
this->Layout();
}

Reported by: urmel

Change a property for many widgets

It would be very helpful to have the possibility to change a property for many widgets in the same time. I explain my problem : Currently, if you have to disable the wxALL border for 30 wxStaticText, you must click on each wxStaticText one by one and disable its wxALL border. One possibility would be to select all the widgets we want to change, and their common properties would be shown in the property panel. So, you just have to modify the property you want. Another alternative is to allow the user to create some shortcuts. For my example, you create a shortcut to disable wxALL border, so after you just have to click on each widget and press your shortcut.

Reported by: jfouche

Bug in 'Undo'

What steps will reproduce the problem?

open attached project
drag m_button to gbSizerChild
undo drag: click a first time on ‘Undo’
What is the expected output? What do you see instead?

m_button should come back under bSizerTop
instead m_button disappears, a second ‘Undo’ is necessary ⇒ BUG 1
wxFormBuilder reports an error message “parent of object ‘m_button’ is wrong“; after that all Undos fail ⇒ BUG 2
The problem seems to be specific to the wxGridBagSizer class: dragging m_button to bSizerChild then undoing generates no error.

Reported by: jfouche

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.