Создание приложений на классах

High-level languages programming questions
  • кстати, у тебя сишный стиль. Раз уж используешь с++, используй хотя бы std::string

    #include <string>

    class Label : public Control {
    public:
    std::string text;
    }

    this->txt = new Label();
    this->txt->text = "Test Text"; // вот теперт это сработает, более того, можно менять данные text
  • кстати, у тебя сишный стиль. Раз уж используешь с++, используй хотя бы std::string
    Я только учусь))) :wink:
    а под Kolibri разве есть std::string?
    Чудеса случаются! Это вам любой программист скажет! :)
  • займусь переделыванием классов... А проблему с BoxLib не получилось найти? ;-)
    Чудеса случаются! Это вам любой программист скажет! :)
  • Сделал свою библиотеку полностью самодостаточной. Никаких функций из файлов
    #include <kosSyst.h>
    #include <kosFile.h>
    Теперь не используется.

    Теперь библиотека работает в отдельном пространстве имён, guik, интегрирован мой класс mstring (самодельный аналог класса string с минимальным количеством функций)
    Новый пример использования

    Code: Select all

    #include <kosSyst.h>
    #include <kosFile.h>
    
    #include "mylib\core.h"
    
    class ApplicationWindow : public guik::Window {
    public:
    	guik::Label* txt;
    	ApplicationWindow() : Window("Hello, C++") {
    		this->txt = new guik::Label("Is is my framework!!!!", 10, 10, COLOR_LIME);
    		this->txt->setText("Is is my small framework!!!");
    
    		this->setSizeX(500);
    		this->setSizeY(300);
    		this->addControl(this->txt);
    	};
    };
    
    void kos_Main() {
    	using guik::Application;
    	kos_GetSystemClock(); // Костыль! Почему то VSC++ не хочет компилировать без этой строчки :-D
    
    	Application::setWindow(new ApplicationWindow());
    	Application::run();
    }
    
    В ближайшее время собираюсь выложить, я вроде тестирую, но хотелось бы, чтобы потестировали другие программисты :wink:
    Для этого постараюсь составить небольшую документацию и выложу примеры использования с комментариями
    Чудеса случаются! Это вам любой программист скажет! :)
  • Мой фреймворк теперь есть на GitHub!
    https://github.com/npaukov/guik

    Представляю новую версию:
    GUIK LIB 0.0.4
    - Библиотека стала полностью самодостаточной. Для использования не нужно подключать никаких дополнительных библиотек
    - Теперь библиотека работает в отдельном пространстве имён guik, чтобы не конфликтовать с другими библиотеками
    - Было произведено много различных исправлений
    - Добавлен класс mstring, это что-то вроде аналога класса string с минимальным набором функций. Он теперь используется во всех
    модулях библиотеки, где нужно хранить какие-либо строки, например надпись или заголовок окна
    - Добавлена возможность искусственно вызвать событие нажатия на клавишу или клика по кнопке в окне
    win->setClickButtonId(ID_кнопки);
    win->setLastKeyCode(ID_клавиши);
    - Теперь для доступа к свойствам элементов используются только set* и get* методы
    - Переименован класс OffcutCustomFigure в OffcutPolygon
    - Добавлена возможность обработки нажатия клавиши в окне
    - Добавлена возможность создавать кнопку с текствовой надписью, а не просто залитую цветом
    + Можно указывать отступы для надписи относительно краёв кнопки,
    размер кнопки в таком случае высчитывается автоматически
    Чудеса случаются! Это вам любой программист скажет! :)
  • А пример сделанный с использованием последей версии фреймворка?
    to infinity and beyond
  • punk_joker wrote:А пример сделанный с использованием последей версии фреймворка?
    Сейчас делаю новую версию, с нуля. "ядро" уже сделано, есть несколько элементов интерфейса.
    Если разберусь с компилятором, то скоро выложу... Пока пишу и компилирую под Windows, вместо функций Kolibri использую пустые обёртки, чтобы компилировалось. Никаких библиотек не использую. Даже классы string и vector самописные. А код приложения вот такой примерно получается:

    Code: Select all

    #include "lib/guik.h"
    
    using namespace guik;
    
    int main() {
    	Application app = Application::getInstance();	
    
    	Window win;
    
    	win.setPosition(20, 20);
    	win.setSize(400, 200);
    	win.title = "My window!";
    	win.color = Color(255, 0, 0);
    	win.name = "Win1";
    	win.setId(1);
    
    	Button button;
    	button.setPosition(10, 10);
    	button.setSize(75, 25);
    	button.text = "Hello!";
    	button.backgroundColor.setColor(255, 0, 0);
    	button.textColor.setColor(0, 0, 0);
    	button.name = "Button";
    	button.setId(2);
    
    	win->addChild(&button);
    
    	app.setWindow(&win);
    
    	while (app.run()) {
    		guik::debug("Iteration start!");
    	}
    
    
    	return 0;
    }
    
    Чудеса случаются! Это вам любой программист скажет! :)
  • Из основных изменений новой версии:
    - новая, более гибкая структура классов (без костылей прошлой версии)
    - Использование newlib вместо smalllibc
    - возможность добавлять для элемента дочерние (зависимые) элементы. В таком случае, если скрыть родительский элемент, будут скрыты и дочерние элементы. Так же дочерние элементы позиционируются не относительно окна, а относительно родительского элемента. (ещё не оттестировано).
    - Возможность задавать элементу уникальные атрибуты ID (нужен для кнопок) и name (для удобства). По этим атрибутам можно искать элементы: Button* button = win.getByName("TestButton"); , Button* button = win.getById(15).. Поиск по всем элементам (включая дочерние): Button* button = win.getByName("TestButton", true); , Button* button = win.getById(15, true). Искать можно не только в окне, но и в других элементах. (не доделано)
    - Новая система событий для элементов
    Чудеса случаются! Это вам любой программист скажет! :)
  • Проблема с box_lib не решена еще?
    to infinity and beyond
  • Проблема с box_lib не решена еще?
    Пока нет, к сожалению. Сейчас только разобрался с компилятором, буду пробовать. Надеюсь, на этот раз получится
    Чудеса случаются! Это вам любой программист скажет! :)
  • https://github.com/npaukov/guik/
    Новая версия на GitHub, правда сейчас есть всего 3 элемента интерфейса((( но буду постепенно новые добавлять.

    В архиве есть исходный код фреймворка, скомпилированное приложение, пара статей в формате chm.
    Attachments
    gitguik.zip (43.68 KiB)
    GUIK исходный код
    Downloaded 414 times
    Чудеса случаются! Это вам любой программист скажет! :)
  • Nikolai1 wrote:https://github.com/npaukov/guik/
    Новая версия на GitHub, правда сейчас есть всего 3 элемента интерфейса((( но буду постепенно новые добавлять.

    В архиве есть исходный код фреймворка, скомпилированное приложение, пара статей в формате chm.
    Делал еще что нибудь или забросил? :)
    Технологии меняют мир, а я - меняю технологии.
  • Пока так сложились обстоятельства, что забросил... Но это пока
    Чудеса случаются! Это вам любой программист скажет! :)
  • Who is online

    Users browsing this forum: No registered users and 5 guests