📄 window_zz.cpp
字号:
#include <ClanLib/display.h>#include <ClanLib/gl.h>#include "window_zz.h"#include "stylemanager_zz.h"CL_Window_ZZ::CL_Window_ZZ( CL_Window *window, CL_StyleManager_ZZ *style): CL_ComponentStyle(window), window(window), style(style), move_handler(0), resources(style->get_resources()), title_font(0), first_paint(true){ slot_paint = window->sig_paint().connect(this, &CL_Window_ZZ::on_paint); button_quit = new CL_Button(CL_Rect(window->get_width() - 12, 3, window->get_width(), 15), "X", window, style); title_font = new CL_Font("Window/font", resources); rc_title = CL_Rect(0, 0,title_font->get_width(window->get_title()) + 16, title_font->get_height(window->get_title()) + 10); move_handler = new CL_ComponentMoveHandler(rc_title, window); rc_main = CL_Rect(12, 12, window->get_width(), window->get_height()); slot_quit = button_quit->sig_clicked().connect(this, &CL_Window_ZZ::on_quit);}CL_Window_ZZ::~CL_Window_ZZ(){ delete title_font; delete move_handler; delete button_quit;}void CL_Window_ZZ::on_paint(){ rc_title = CL_Rect(0, 0,title_font->get_width(window->get_title()) + 16, title_font->get_height(window->get_title()) + 10); rc_main = CL_Rect(12, 12, window->get_width(), window->get_height()); if (first_paint) { button_quit->set_position(CL_Rect(window->get_width() - 12,3, window->get_width(),15)); delete move_handler; move_handler = new CL_ComponentMoveHandler(rc_title, window); window->get_client_area()->set_position(CL_Rect(rc_main.left, rc_main.top, window->get_width(), window->get_height())); first_paint = false; } int width = window->get_width(); int height = window->get_height(); // Fill //------- CL_Color clr_background(100, 120, 100, 180); style->fill_rounded_rect(window->client_to_screen(rc_main), clr_background); // Outline CL_Color clr_outline(175, 205, 148); style->draw_rounded_rect(window->client_to_screen(rc_main), clr_outline); CL_Color clr_title_bgnd(93, 156, 39); // title style->fill_rounded_rect(window->client_to_screen(rc_title), clr_title_bgnd); style->draw_rounded_rect(window->client_to_screen(rc_title), clr_outline); // draw title text CL_Point title_coord = window->client_to_screen(CL_Point(rc_title.left + 8, rc_title.top + 6)); title_font->draw(title_coord.x, title_coord.y, window->get_title());}void CL_Window_ZZ::on_quit(){ if (window->is_modal()) window->quit(); else window->close();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -