Skip to content

Commit

Permalink
Merge pull request #1315 from KeyWorksRW/release_prep
Browse files Browse the repository at this point in the history
1.2.0 Release preparation
  • Loading branch information
Randalphwa authored Nov 28, 2023
2 parents e4629cc + 87cc04f commit ec80979
Show file tree
Hide file tree
Showing 12 changed files with 40 additions and 58 deletions.
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Change Log
All notable changes to this project will be documented in this file.

## [Uneleased (1.2.0)]
## [Released (1.2.0)]

### Added

Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.20)

project(wxUiEditor
LANGUAGES CXX
VERSION 1.1.3
VERSION 1.2.0
DESCRIPTION "wxWidgets UI designer"
HOMEPAGE_URL "https://github.com/KeyWorksRW/wxUiEditor")

Expand Down
16 changes: 6 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# ![logo](src/art_src/logo64.png) wxUiEditor

This WYSIWYG tool is used to create and maintain [wxWidgets](https://docs.wxwidgets.org/trunk/index.html) UI elements (dialogs, menus, etc.), generating either C++, Python or XRC code. Minimal requirement for compiling C++ output files is a C++11 compliant compiler and **wxWidgets** 3.0 (version 3.2 needed for full functionality). Minimal requirement for Python code is wxPython 4.2.
This WYSIWYG tool is used to create and maintain [wxWidgets](https://docs.wxwidgets.org/trunk/index.html) UI elements (dialogs, menus, etc.), generating either C++, [wxPython](https://wxpython.org/), [wxRuby3](https://github.com/mcorino/wxRuby3) or XRC code. It supports almost all of the wxWidgets UI controls along with bitmap bundles and SVG files.

In addition to creating new projects, the following project types can be imported:

Expand All @@ -12,36 +12,32 @@ In addition to creating new projects, the following project types can be importe
- **XRC** (including exports from **DialogBlocks**)
- **Windows Resource Dialogs** (Click [here](docs/import_winres.md) for more information)

**wxUiEditor** is a 64-bit app that runs natively on Windows 10 or later, and with **Wine** on Unix systems.

## Status

[![CodeQL](https://github.com/KeyWorksRW/wxUiEditor/workflows/CodeQL/badge.svg)](https://github.com/KeyWorksRW/wxUiEditor/actions?query=workflow:"CodeQL") [![GitHub tag](https://img.shields.io/github/tag/KeyWorksRW/wxUiEditor?include_prereleases=&sort=semver&color=blue)](https://github.com/KeyWorksRW/wxUiEditor/releases/)

## Building

It's fine to create a `build/` directory in the root of the repository as .gitignore tells git to ignore it.

You will need a C++20 compliant compiler to build **wxUiEditor**. To build, run the following two commands from the root of the repository:
You will need a C++20 compliant compiler to build **wxUiEditor**. To build using CMake 3.20 or higher, run the following two commands from the root of the repository:

```
cmake -G "Ninja Multi-Config" . -B build
cmake --build build --config Release --target wxUiEditor
```

For Unix builds, you will currently need a minimum of gcc 11.4 to be able to compile the sources.
For Unix builds, you currently need a minimum of gcc 11.4 to be able to compile the sources. After building, you can can change to the build/ directory and run `cpack -G DEB -C Release` or `cpack -G RPM -C Release` to create a Ubuntu or Fedora package.

See [Developer notes](docs/DEV_NOTES.md) for more information about the current branches, and some high level overview of the code.
See [Developer notes](docs/DEV_NOTES.md) if you want information about contributing to the project.

## Licenses

- All KeyWorks Software code uses the Apache License 2.0 [LICENSE](LICENSE).
- The pugixml code uses a MIT [LICENSE](pugixml/LICENSE.md).
- The rapidjson code uses a MIT [LICENSE](src/import/rapidjson/license.txt).
- The wxWidgets code in the wxSnapshot module uses the wxWindows [LICENSE](wxSnapshot/License.txt).
- The wxWidgets code uses the wxWindows [LICENSE](wxWidgets/License.txt).

## Screen shots

The following is a screen shot of **wxUiEditor**:
The following is a sample screen shot of **wxUiEditor** showing the Event handler dialog and an example of one of the drop-down lists of controls:

![image](screenshot.jpg)
12 changes: 6 additions & 6 deletions docs/DEV_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
# Developer notes

If you are planning on contributing code, the following sections contain information about the code that might not be immediately obvious. Reading these sections may make the code easier to understand, as well as ensuring that PR's are written in a way that matches the rest of the code base. In addition, some of the directories also have README files that provide explanations specific to the files in that directory. See [generate](../src/generate/README.md), [nodes](../src/nodes/README.md), [winres](../src/winres/README.md) and [xml](../src/xml/README.md).
Contributions are welcome! If you are interested in contributing, please read the following sections.

Note that the code requires a C++20 compliant compiler -- which means you should be using C++20 coding conventions. That includes using `std::string_view` (or `tt_stringview`) for strings when practical. See the **Strings** section below for information about working with `wxString`.
Note that in addition to this file, some of the directories also have README files that provide explanations specific to the files in that directory. See [generate](../src/generate/README.md), [nodes](../src/nodes/README.md), [winres](../src/winres/README.md) and [xml](../src/xml/README.md).

## wxWidgets libraries
The code requires a C++20 compliant compiler -- which means you should be using C++20 coding conventions. That includes using `std::string_view` (or `tt_stringview`) for strings when practical. See the **Strings** section below for information about working with `wxString`.

Abbreviated versions of wxWidgets 3.2 and 3.3 are part of the repository. These versions generally only contain source and header files, and they are built with a custom CMakeLists.txt file. The default is to build with `wxSnapshot/` which is a subtree of `https://github.com/KeyWorksRW/wxSnapshot.git` which contains a development version of wxWidgets 3.3. This is _not_ necessarily a release version of wxWidgets -- it's being used to get Dark mode and UTF8 when building on Windows.
## wxWidgets libraries

The `wxWidgets/` directory contains a snapshot of wxWidgets 3.2. At some point, it may not be possible to build wxUiEditor with this library, but it will still be available for building the projects in the `tests/` directory.
The `wxWidgets/` directory contains a snapshot of wxWidgets 3.3.x. Note that the `setup.h` file used to build this is fairly restritctive, avoiding many sections of the library that aren't used by wxUiEditor. This particular build is not intended to be used for anything other than wxUiEditor.

## Debug builds

When you create a Debug build, there will be an additional `Testing` and `Internal` menu to the right of the **Help** menu that will give you access to additional functionality for easier debugging. You can also get these menus in a Release build if you set INTERNAL_BLD_TESTING to true in your CMake configuration.

## Strings

Internally strings are normally placed into `tt_string` or `tt_stringview` classes. These classes inherit from `std::string` and `std::string_view` respectively, and provide additional functionality common across both of these classes. When you need to convert a tt_string or tt_stringview to a wxString to pass to wxWidgets, use the method `make_wxString()`. If you need to pass a wxString to tt_string, use `utf8_string()`. These two methods ensure that UTF8/16 conversion is correctly handled on Windows. It also ensure a seamless transition between wxWidgets 3.2 and 3.3 where the underlying wxString is changed from UTF16 to UTF8.
Internally strings are normally placed into `tt_string` or `tt_stringview` classes. These classes inherit from `std::string` and `std::string_view` respectively, and provide additional functionality common across both of these classes. Note that the wxWidgets library is built as UTF8 even on Windows (new option in wxWidgets 3.3).

### Debugging macros

Expand Down
27 changes: 0 additions & 27 deletions docs/building_notes.md

This file was deleted.

2 changes: 0 additions & 2 deletions docs/import_dialogblocks.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,3 @@ wxUiEditor can only import a DialogBlocks project if it was saved as an XML file
2) Either click the Settings toolbar button or choose the Settings command from the View menu
3) In the Settings dialog, select Project and check "Save as XML"
4) Click OK and then click the Save toolbar button or the Save Project command from the File menu

As an alternative, you can also use DialogBlocks to export your project as an XRC file. However, the XRC will usually contain less information and the wxUiEditor-generated code may not work the same as the DialogBlocks-generated code.
11 changes: 11 additions & 0 deletions docs/release_prep.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
## Version change

Updating the version of wxUiEditor means changing the version number in the following files:

- pch.h
- wxUiEditor.rc
- wxUiEditor.exe.manifest
- CMakeLists.txt (change VERSION at the top of the file)
- CHANGELOG.md

If new controls, properties, or other changes have been made that change the project file in a way that previous versions will not understand, then the project number needs to be increated -- `curSupportedVer` in pch.h.
Binary file modified screenshot.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 6 additions & 2 deletions src/mainframe.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -750,10 +750,14 @@ void MainFrame::OnAbout(wxCommandEvent&)
}

aboutInfo.SetDescription(description);
aboutInfo.SetCopyright(txtCopyRight);
aboutInfo.SetWebSite("https://github.com/KeyWorksRW/wxUiEditor");

aboutInfo.AddDeveloper("Ralph Walden");
aboutInfo.SetCopyright(txtCopyRight);

#if 0
// Save this for when/if other people contribute to the project
aboutInfo.AddDeveloper("Randalphwa");
#endif

aboutInfo.SetIcon(wxueBundleSVG(wxue_img::wxUiEditor_svg, 1943, 7265, wxSize(64, 64)).GetIconFor(this));

Expand Down
8 changes: 4 additions & 4 deletions src/pch.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@

#include <wx/defs.h> // Declarations/definitions common to all wx source files

#if !wxCHECK_VERSION(3, 2, 0)
#error "You must have wxWidgets 3.2.0 or later to build this project."
#if !wxCHECK_VERSION(3, 3, 0)
#error "You must have wxWidgets 3.3.0 or later to build this project."
#endif

#if defined(__WINDOWS__)
Expand Down Expand Up @@ -161,7 +161,7 @@ using view_map = std::map<tt_string_view, std::string_view, std::less<>>;
// When chaniging txtVersion, you also need to change the version in wxUiEditor.rc and
// wxUiEditor.exe.manifest and ../CMakeLists.txt

constexpr const char* txtVersion = "wxUiEditor 1.1.3";
constexpr const char* txtVersion = "wxUiEditor 1.2.0";
constexpr const char* txtCopyRight = "Copyright (c) 2019-2023 KeyWorks Software";
constexpr const char* txtAppname = "wxUiEditor";

Expand All @@ -178,7 +178,7 @@ constexpr const int minRequiredVer = 15;
// 1.1.0 == version 16
// 1.1.1 == version 17 (beta 1 of 1.1.2)
// 1.1.2 == version 18
// 1.2.0 == version 19 (beta 1 of 1.2.0)
// 1.2.0 == version 19 (1.2.0)

// Use when you need to return an empty const tt_string&
extern tt_string tt_empty_cstr;
Expand Down
2 changes: 1 addition & 1 deletion src/wxUiEditor.exe.manifest
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
<assemblyIdentity
version="1.1.3.0"
version="1.2.0.0"
processorArchitecture="*"
name="KeyWorks.Software.wxUiEditor"
type="win32"
Expand Down
8 changes: 4 additions & 4 deletions src/wxUiEditor.rc
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,8 @@ APPICON ICON "Debug.ico"
//

VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,1,3,0
PRODUCTVERSION 1,1,3,0
FILEVERSION 1,2,0,0
PRODUCTVERSION 1,2,0,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
Expand All @@ -89,14 +89,14 @@ BEGIN
VALUE "Comments", "https://github.com/KeyWorksRW/wxUiEditor\0"
VALUE "CompanyName", "KeyWorks Software\0"
VALUE "FileDescription", "wxWidgets GUI designer for C++/wxPython/wxRuby/XRC applications\0"
VALUE "FileVersion", "1,1,3,0\0"
VALUE "FileVersion", "1,2,0,0\0"
VALUE "InternalName", "wxUiEditor\0"
VALUE "LegalCopyright", "Copyright (c) 2019-2023 KeyWorks Software\0"
VALUE "LegalTrademarks", "\0"
VALUE "OriginalFilename", "wxUiEditor.exe\0"
VALUE "PrivateBuild", "\0"
VALUE "ProductName", "wxUiEditor\0"
VALUE "ProductVersion", "1,1,3,0\0"
VALUE "ProductVersion", "1,2,0,0\0"
VALUE "SpecialBuild", "\0"
END
END
Expand Down

0 comments on commit ec80979

Please sign in to comment.