Skip to content

Commit

Permalink
Developing 0.25.0
Browse files Browse the repository at this point in the history
- linked nana 1.7.4
- added project name to form caption
- added 'MOVE INTO' functionality to move a group of controls into a field, a grid or a panel
- checkbox: added scheme
- toolbar: improved code generation
- fixed context menu behaviour on object panel
- fixed bug on pg_color_inherited initialization
- fixed monor bugs
  • Loading branch information
besh81 committed Sep 7, 2020
1 parent c670a0e commit df4340a
Show file tree
Hide file tree
Showing 20 changed files with 360 additions and 102 deletions.
4 changes: 2 additions & 2 deletions README.MD
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Nana Creator <a href="https://www.buymeacoffee.com/besh81" target="_blank"><img align="right" src="https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png" alt="Buy Me A Coffee" style="height: 41px !important;width: 174px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;" ></a>
**Nana Creator** is a RAD tool for (and build with) [Nana C++ Library](https://github.com/cnjinhao/nana).
**Nana Creator** is a RAD tool for (and built with) [Nana C++ Library](https://github.com/cnjinhao/nana).

[![](https://img.shields.io/badge/dependencies-nana%20Lib%201.7.3-blue.svg?longCache=true&style=for-the-badge)](https://github.com/cnjinhao/nana)
[![](https://img.shields.io/badge/dependencies-nana%20Lib%201.7.4-blue.svg?longCache=true&style=for-the-badge)](https://github.com/cnjinhao/nana)

Click here to download the win exe file: [![Download nana-creator](https://img.shields.io/sourceforge/dt/nana-creator.svg)](https://sourceforge.net/projects/nana-creator/files/latest/download)

Expand Down
2 changes: 2 additions & 0 deletions build/codeblocks_win/nana_creator.cbp
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,8 @@
<Unit filename="../../src/main.cpp" />
<Unit filename="../../src/namemanager.cpp" />
<Unit filename="../../src/namemanager.h" />
<Unit filename="../../src/nana_extra/adi_place.cpp" />
<Unit filename="../../src/nana_extra/adi_place.hpp" />
<Unit filename="../../src/nana_extra/color_helper.cpp" />
<Unit filename="../../src/nana_extra/color_helper.h" />
<Unit filename="../../src/nana_extra/pgitems.cpp" />
Expand Down
2 changes: 1 addition & 1 deletion src/assetspanel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ extern imagemanager g_img_mgr;

//assetspanel
assetspanel::assetspanel(nana::window wd, bool visible)
: nana::panel<true>(wd, visible)
: nana::panel<true>(wd, nana::rectangle(), visible)
{
bgcolor(CREATOR_WINDOW_BG);

Expand Down
3 changes: 2 additions & 1 deletion src/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@


#define CREATOR_NAME "Nana Creator"
#define CREATOR_VERSION "0.24.0"
#define CREATOR_VERSION "0.25.0"
#define CREATOR_TITLE (CREATOR_NAME " " CREATOR_VERSION)



Expand Down
26 changes: 25 additions & 1 deletion src/creator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ void creator::sb_set(const std::string& str)

void creator::_init_ctrls()
{
caption(CREATOR_NAME " " CREATOR_VERSION);
caption(CREATOR_TITLE);

// toolbar
_tb.events().selected([this](const nana::arg_toolbar & arg)
Expand All @@ -146,6 +146,9 @@ void creator::_init_ctrls()
save_xml(prj_name.string());
}

// update window caption
caption(CREATOR_TITLE);

p_gui_mgr->clear();
prj_name = "";

Expand All @@ -156,6 +159,15 @@ void creator::_init_ctrls()
{
prj_name = dlg.get_filename();

// update window caption
std::string title = CREATOR_TITLE;
if(!prj_name.string().empty())
{
title.append(" - ");
title.append(prj_name.filename().string());
}
caption(title);

p_gui_mgr->new_project(dlg.get_ctrl_type(), dlg.get_projectname());

// crea file di progetto
Expand All @@ -177,6 +189,9 @@ void creator::_init_ctrls()
save_xml(prj_name.string());
}

// update window caption
caption(CREATOR_TITLE);

p_gui_mgr->clear();
prj_name = "";

Expand All @@ -202,6 +217,15 @@ void creator::_init_ctrls()

if(!load_xml(prj_name.string()))
prj_name = "";

// update window caption
std::string title = CREATOR_TITLE;
if(!prj_name.string().empty())
{
title.append(" - ");
title.append(prj_name.filename().string());
}
caption(title);
}
}
else if(arg.button == TB_SAVE) // save project
Expand Down
8 changes: 3 additions & 5 deletions src/creator.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*****************************************************
* C++ code generated with Nana Creator (0.22.0)
* C++ code generated with Nana Creator (0.25.0)
* GitHub repo: https://github.com/besh81/nana-creator
*
* PLEASE EDIT ONLY INSIDE THE TAGS:
Expand Down Expand Up @@ -60,8 +60,7 @@ class creator
_tb.append("Save project", nana::paint::image("icons/save.png"));
_tb.append("Save project as...", nana::paint::image("icons/save_as.png"));
_tb.separate();
_tb.append("Generate code", nana::paint::image("icons/output.png"));
_tb.textout(5, true);
_tb.append("Generate code", nana::paint::image("icons/output.png")).textout(true);
_tb.separate();
_tb.append("Delete current selection", nana::paint::image("icons/delete.png"));
_tb.separate();
Expand All @@ -72,8 +71,7 @@ class creator
_tb.append("Copy current selection", nana::paint::image("icons/copy.png"));
_tb.append("Paste into/after current selection", nana::paint::image("icons/paste.png"));
_tb.go_right();
_tb.append("Info...", nana::paint::image("icons/info.png"));
_tb.textout(15, true);
_tb.append("Info...", nana::paint::image("icons/info.png")).textout(true);
// _adi_panel_margin
_adi_panel_margin.create(*this);
_adi_panel_margin_place.bind(_adi_panel_margin);
Expand Down
25 changes: 23 additions & 2 deletions src/ctrls/checkbox.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

#include "config.h"
#include "ctrls/checkbox.h"

#include "nana_extra/color_helper.h"


namespace ctrls
Expand All @@ -20,6 +20,10 @@ namespace ctrls
chk.create(*parent->nanawdg);
ctrl::init(&chk, CTRL_CHECKBOX, name);

def_scheme = chk.scheme();

chk.react(false); // needs to avoid user can change the state clicking on control

// common
properties.append("caption").label("Caption").category(CAT_COMMON).type(pg_type::string) = "";
properties.append("check").label("Checked").category(CAT_COMMON).type(pg_type::check) = chk.checked();
Expand All @@ -29,6 +33,10 @@ namespace ctrls
properties.append("transparent").label("Transparent").category(CAT_APPEARANCE).type(pg_type::check) = chk.transparent();
// layout
// ...
//scheme
// def values from checkbox.cpp - function: void drawer::refresh(graph_reference graph)
properties.append("square_bgcolor").label("Square bg").category(CAT_SCHEME).type(pg_type::color_inherited) = nana::to_string(def_scheme.square_bgcolor.get(chk.bgcolor()), true);
properties.append("square_border_color").label("Square border").category(CAT_SCHEME).type(pg_type::color) = nana::to_string(def_scheme.square_border_color.get(chk.fgcolor()));
}


Expand All @@ -41,7 +49,14 @@ namespace ctrls
chk.radio(properties.property("radio").as_bool());
chk.transparent(properties.property("transparent").as_bool());

chk.react(false); // needs to avoid user can change the state clicking on control
//scheme
if(nana::is_color_inherited(properties.property("square_bgcolor").as_string()))
chk.scheme().square_bgcolor = static_cast<nana::color_argb>(0x0); // def values from checkbox.hpp - drawerbase::checkbox::scheme
else
chk.scheme().square_bgcolor = nana::to_color(properties.property("square_bgcolor").as_string());
chk.scheme().square_border_color = nana::to_color(properties.property("square_border_color").as_string());

nana::API::refresh_window(chk);
}


Expand Down Expand Up @@ -84,6 +99,12 @@ namespace ctrls
cd->init.push_back(name + ".radio(true);");
if(properties.property("transparent").as_bool())
cd->init.push_back(name + ".transparent(true);");

//scheme
if(properties.property("square_bgcolor").as_string() != nana::to_string(def_scheme.square_bgcolor))
cd->init.push_back(name + ".scheme().square_bgcolor = nana::color(" + properties.property("square_bgcolor").as_string() + ");");
if(properties.property("square_border_color").as_string() != nana::to_string(def_scheme.square_border_color))
cd->init.push_back(name + ".scheme().square_border_color = nana::color(" + properties.property("square_border_color").as_string() + ");");
}

}//end namespace ctrls
2 changes: 2 additions & 0 deletions src/ctrls/checkbox.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ namespace ctrls

protected:
nana::checkbox chk;

nana::drawerbase::checkbox::scheme def_scheme;
};

}//end namespace ctrls
Expand Down
5 changes: 3 additions & 2 deletions src/ctrls/listbox.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ namespace ctrls
lst.scheme().item_selected = nana::to_color(properties.property("item_selected").as_string());
lst.scheme().item_highlighted = nana::to_color(properties.property("item_highlighted").as_string());
lst.scheme().selection_box = nana::to_color(properties.property("selection_box").as_string());
// column_font
// column_font {???}
lst.scheme().max_fit_content = properties.property("max_fit_content").as_uint();
lst.scheme().min_column_width = properties.property("min_column_width").as_uint();
lst.scheme().text_margin = properties.property("text_margin").as_uint();
Expand All @@ -98,7 +98,8 @@ namespace ctrls
lst.scheme().header_splitter_area_after = properties.property("header_splitter_area_after").as_uint();
lst.scheme().header_padding_top = properties.property("header_padding_top").as_uint();
lst.scheme().header_padding_bottom = properties.property("header_padding_bottom").as_uint();
// mouse_wheel
// mouse_wheel {???}

nana::API::refresh_window(lst);
}

Expand Down
3 changes: 2 additions & 1 deletion src/ctrls/textbox.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,8 @@ namespace ctrls
txt.scheme().selection = nana::to_color(properties.property("selection").as_string());
txt.scheme().selection_unfocused = nana::to_color(properties.property("selection_unfocused").as_string());
txt.scheme().selection_text = nana::to_color(properties.property("selection_text").as_string());
// mouse_wheel
// mouse_wheel {???}

nana::API::refresh_window(txt);
}

Expand Down
27 changes: 26 additions & 1 deletion src/ctrls/toolbar.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ namespace ctrls
cd->init.push_back(name + ".scale(" + properties.property("scale").as_string() + ");");

// buttons - START
std::size_t pos = 0;
std::size_t pos = 0; //TODO : nella nuova versione non dovrebbe più servire
for(auto& i : items)
{
if(i.property("goright").as_bool())
Expand All @@ -126,6 +126,7 @@ namespace ctrls
cd->init.push_back(name + ".separate();");
else
{
/*
auto str = name + ".append(\"" + i.property("text").as_string() + "\"";
if(i.property("image").as_string().empty())
str.append(");");
Expand All @@ -146,6 +147,30 @@ namespace ctrls
if(i.property("toggle_pushed").as_bool())
cd->init.push_back(name + ".toggle(" + std::to_string(pos) + ", true);");
}
*/
auto str = name + ".append(\"" + i.property("text").as_string() + "\"";
if(i.property("image").as_string().empty())
str.append(")");
else
str.append(", nana::paint::image(\"" + g_file_mgr.to_relative(i.property("image").as_string()) + "\"))");

if(!i.property("enable").as_bool())
str.append(".enable(false)");
if(i.property("textout").as_bool())
str.append(".textout(true)");

if(i.property("toggle_type").as_bool())
{
// TODO: questo va direttamente dentro la funzione append
//cd->init.push_back(name + ".tooltype(" + std::to_string(pos) + ", nana::toolbar::tool_type::toggle);");
if(!i.property("toggle_group").as_string().empty())
str.append(".toggle_group(\"" + i.property("toggle_group").as_string() + "\")");
if(i.property("toggle_pushed").as_bool())
str.append(".toggle(true)");
}

str.append(";");
cd->init.push_back(str);
}

++pos;
Expand Down

0 comments on commit df4340a

Please sign in to comment.