亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? listbox_zz.cpp

?? 需要clanlib 庫 這個改進版的 在linux 很好玩 但是一定要有clanlib
?? CPP
字號:
#include <ClanLib/core.h> // for CL_DomElement#include <ClanLib/display.h>#include <ClanLib/gl.h>#include "listbox_zz.h"#include "stylemanager_zz.h"#include "scrollbar_zz.h"CL_ListBox_ZZ::CL_ListBox_ZZ(	CL_ListBox * listbox,	CL_StyleManager_ZZ * style):	CL_ComponentStyle(listbox),	listbox_(listbox),	style_(style),	resources_(style->get_resources()),    first_paint_(true),    listbox_type_(type_normal){	font_ = new CL_Font("ListBox/font", resources_);    font_->set_color(152.0f / 255, 211.0f / 255, 101.0f / 255);	// Create a vertical scrollbar	scrollbar_ = new CL_ScrollBar(false, listbox);    {        CL_ScrollBar_ZZ * sb_type = (CL_ScrollBar_ZZ*)scrollbar_->get_style();        if (sb_type)            sb_type->set_type(CL_ScrollBar_ZZ::type_listbox);    }	visible_scrollbar_ = true;	int font_height = font_->get_height();	listbox_->set_item_height(font_height);	CL_Component *client_area = listbox_->get_client_area();	slots_.connect(listbox_->sig_set_options(), this, &CL_ListBox_ZZ::on_set_options);	slots_.connect(listbox_->sig_paint(), this, &CL_ListBox_ZZ::on_paint_background);	slots_.connect(client_area->sig_mouse_down(), this, &CL_ListBox_ZZ::on_mouse_down);	slots_.connect(client_area->sig_paint(), this, &CL_ListBox_ZZ::on_paint_listbox);	slots_.connect(listbox_->sig_resize(), this, &CL_ListBox_ZZ::on_resize);	slots_.connect(listbox_->sig_item_added(), this, &CL_ListBox_ZZ::on_item_added);	slots_.connect(listbox_->sig_item_removed(), this, &CL_ListBox_ZZ::on_item_removed);	slots_.connect(listbox_->sig_clear(), this, &CL_ListBox_ZZ::on_clear);	slots_.connect(scrollbar_->sig_value_changed(), this, &CL_ListBox_ZZ::on_scroll_change);	on_resize(0,0);}CL_ListBox_ZZ::~CL_ListBox_ZZ(){    delete font_;    delete scrollbar_;}void CL_ListBox_ZZ::on_paint_background(){    if (first_paint_)    {        if (listbox_->get_count() > 0)        {            if (listbox_->get_current_item() == -1)            {                listbox_->set_current_item(0);            }            listbox_->insert_item("hack");            listbox_->remove_item(listbox_->get_count() - 1);        }        first_paint_ = false;    }	int width = listbox_->get_width();	int height = listbox_->get_height();    // main    CL_Color const clr_background(0, 40, 0, 60);    CL_Rect rc_main = listbox_->get_screen_rect();    style_->fill_rounded_rect(rc_main, clr_background);    // Outline    CL_Color clr_outline(175, 205, 148);    CL_Rect rc_outline = rc_main;    style_->draw_rounded_rect(rc_outline, clr_outline);}void CL_ListBox_ZZ::on_paint_listbox(){	int width = listbox_->get_client_area()->get_width();	int height = listbox_->get_client_area()->get_height();	int offset_x = listbox_->get_client_area()->get_screen_x();	int offset_y = listbox_->get_client_area()->get_screen_y();    if (listbox_type_ == type_normal)    {		CL_Display::push_cliprect(listbox_->get_client_area()->get_screen_rect());		int pos = 0;		int offset = listbox_->get_top_item();        std::vector<CL_ListItem *> items = listbox_->get_items();        std::vector<CL_ListItem *>::iterator it;        font_->set_color(152.0f / 255, 211.0f / 255, 101.0f / 255);        for (it = items.begin(); it != items.end(); ++it, ++pos)        {            if (pos < offset)                continue;                        if (pos == listbox_->get_current_item())            {                CL_Display::fill_rect(                    CL_Rect(offset_x, offset_y + (pos - offset) * font_->get_height(),                    offset_x + width, offset_y + (pos + 1 - offset) * font_->get_height()),                    CL_Color(93, 156, 39));                font_->set_color(255.0f / 255, 255.0f / 255, 255.0f / 255);                font_->draw(                    offset_x + 4,                    offset_y + (pos - offset) * font_->get_height(),                    (*it)->str);                font_->set_color(152.0f / 255, 211.0f / 255, 101.0f / 255);            }            else            {				font_->draw(					offset_x + 4,					offset_y + (pos - offset) * font_->get_height(),					(*it)->str);                                }                        if((pos - offset) * font_->get_height() >= height)                break;        }		CL_Display::pop_cliprect();    }    else    if (listbox_type_ == type_levels_list)    {		CL_Display::push_cliprect(listbox_->get_client_area()->get_screen_rect());		int pos = 0;		int offset = listbox_->get_top_item();        std::vector<CL_ListItem *> items = listbox_->get_items();        std::vector<CL_ListItem *>::iterator it;        for (it = items.begin(); it != items.end(); ++it, ++pos)        {            if (pos < offset)                continue;			CL_ListBoxItem_ZZ * item = (CL_ListBoxItem_ZZ *)(*it);			std::string text;			CL_Color text_color;			if (item->get_solved())			{				text = "(+) " + item->get_levelname();				text_color = CL_Color(211, 211, 101);			}			else			{				text = "(-) " + item->get_levelname();				text_color = CL_Color(152, 211, 101);			}                        if (pos == listbox_->get_current_item())            {                CL_Display::fill_rect(                    CL_Rect(offset_x, offset_y + (pos - offset) * font_->get_height(),                    offset_x + width, offset_y + (pos + 1 - offset) * font_->get_height()),                    CL_Color(93, 156, 39));                font_->set_color(255.0f / 255, 255.0f / 255, 255.0f / 255);                font_->draw(                    offset_x + 4,                    offset_y + (pos - offset) * font_->get_height(),                    text);            }            else            {				font_->set_color(text_color);				font_->draw(					offset_x + 4,					offset_y + (pos - offset) * font_->get_height(),					text);            }                        if((pos - offset) * font_->get_height() >= height)                break;        }		CL_Display::pop_cliprect();    }}void CL_ListBox_ZZ::on_item_added(int index){	update_scrollbar(true);}void CL_ListBox_ZZ::on_item_removed(int index){	update_scrollbar(true);}void CL_ListBox_ZZ::on_clear(){	update_scrollbar(true);}void CL_ListBox_ZZ::on_set_options(const CL_DomElement &options){	if (options.get_attribute("type") == "levels_list")	{		listbox_type_ = type_levels_list;	}}void CL_ListBox_ZZ::on_scroll_change(int new_offset){	listbox_->set_top_item(new_offset);}void CL_ListBox_ZZ::on_mouse_down(const CL_InputEvent &key){	int height_of_all_items = listbox_->get_item_height() * listbox_->get_count();	int height_of_client_area = listbox_->get_client_area()->get_height();	if (	key.id == CL_MOUSE_WHEEL_UP		&&	height_of_all_items > height_of_client_area )	{		listbox_->set_top_item(listbox_->get_top_item() - 5);		update_scrollbar(true);		return;	}	if (	key.id == CL_MOUSE_WHEEL_DOWN		&&	height_of_all_items > height_of_client_area )	{		listbox_->set_top_item(listbox_->get_top_item() + 5);		update_scrollbar(true);		return;	}}void CL_ListBox_ZZ::on_resize(int old_width, int old_height){	// Position the listbox item-box	CL_Rect rect(4, 4, 4 + listbox_->get_width() - 8 , 4 + listbox_->get_height() - 8);	listbox_->get_client_area()->set_position(rect);	update_scrollbar(false);	// Scrollbar was added, shrink clientarea	if(visible_scrollbar_)	{		listbox_->get_client_area()->set_width(listbox_->get_client_area()->get_width() - 16);		// Position the scrollbar		rect = CL_Rect(listbox_->get_width() - 19, 0, listbox_->get_width(), listbox_->get_height());		scrollbar_->set_position(rect);	}}/////////////////////////////////////////////////////////////////////////////// Implementation:void CL_ListBox_ZZ::update_scrollbar(bool resize){		int max_visible_items = (listbox_->get_client_area()->get_height() - 4) / listbox_->get_item_height();	if(listbox_->get_count() > max_visible_items)	{		if(visible_scrollbar_ == false)		{			visible_scrollbar_ = true;			listbox_->add_child(scrollbar_, false);			if(resize)				on_resize(0,0);		}		scrollbar_->set_max_value(listbox_->get_count() - max_visible_items);		scrollbar_->set_value(listbox_->get_top_item());	}	else	{		if(visible_scrollbar_)		{			visible_scrollbar_ = false;			scrollbar_->set_value(0);			listbox_->remove_child(scrollbar_);			if(resize)				on_resize(0,0);		}	}}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久久久久晋中| 91官网在线观看| 国产欧美日韩另类视频免费观看| 国内外精品视频| 国产精品情趣视频| 99在线精品观看| 亚洲香肠在线观看| 欧美一区二区在线免费播放 | 中文字幕制服丝袜一区二区三区| 粉嫩aⅴ一区二区三区四区五区| 国产精品理伦片| 欧美人体做爰大胆视频| 精品一区二区三区不卡| 国产精品久久久久久久久动漫| 91黄色小视频| 激情综合色播五月| 1000部国产精品成人观看| 欧美日韩一区二区电影| 黑人巨大精品欧美一区| 亚洲欧美日韩国产一区二区三区| 欧美久久一二三四区| 国产麻豆91精品| 亚洲激情中文1区| 日韩欧美色电影| 91丨porny丨最新| 日韩国产欧美视频| 国产精品久久久久久久久果冻传媒| 欧美在线免费播放| 国产精品中文字幕日韩精品| 亚洲一区二区三区视频在线播放| 欧美成人一区二区| 欧美亚洲国产一区在线观看网站| 久久97超碰国产精品超碰| 亚洲欧美色综合| 国产日韩欧美激情| 在线电影一区二区三区| www.亚洲人| 国产在线播放一区| 午夜伊人狠狠久久| 国产精品大尺度| 2020国产精品| 欧美一区二区性放荡片| 在线观看亚洲精品视频| 成人综合在线网站| 久久国产精品99久久人人澡| 亚洲国产精品一区二区尤物区| 中文字幕欧美区| 26uuu另类欧美亚洲曰本| 欧美日韩视频专区在线播放| 99精品欧美一区二区三区小说| 精品写真视频在线观看| 亚洲高清免费观看高清完整版在线观看| 久久综合精品国产一区二区三区| 欧美日韩国产精选| 91精品福利视频| 99re这里只有精品首页| 成人小视频免费观看| 九九**精品视频免费播放| 午夜精品久久久久久不卡8050| 亚洲欧美怡红院| 国产精品久久久久久亚洲伦 | 欧美日韩视频专区在线播放| 91丨porny丨国产| 北条麻妃一区二区三区| 国产乱淫av一区二区三区| 久久精品久久久精品美女| 丝袜美腿一区二区三区| 午夜精品久久久久久久| 午夜精品久久久久久不卡8050| 夜夜夜精品看看| 亚洲国产一区在线观看| 一区二区三区欧美久久| 亚洲综合在线电影| 亚洲综合在线第一页| 亚洲自拍偷拍网站| 亚洲综合区在线| 亚洲午夜精品在线| 奇米影视在线99精品| 日本最新不卡在线| 国内国产精品久久| 粉嫩一区二区三区在线看| 成人免费av在线| 91蜜桃婷婷狠狠久久综合9色| 99这里只有久久精品视频| 色视频成人在线观看免| 欧美丝袜丝交足nylons图片| 欧美影视一区在线| 777xxx欧美| 2020国产精品自拍| 综合分类小说区另类春色亚洲小说欧美| 中文字幕一区二区三区av| 亚洲日穴在线视频| 亚洲mv大片欧洲mv大片精品| 日韩黄色免费电影| 国产一区二区三区久久久| 国产乱码精品一品二品| 91色视频在线| 欧美一区二区精美| 国产嫩草影院久久久久| 亚洲九九爱视频| 蜜臀av在线播放一区二区三区| 国产在线精品视频| 91蝌蚪porny| 日韩一区二区中文字幕| 国产亚洲成年网址在线观看| 1024国产精品| 蜜桃视频一区二区三区| 91在线视频免费91| 91精品一区二区三区久久久久久 | 久久99精品国产91久久来源| 国产风韵犹存在线视精品| 色呦呦网站一区| 欧美成人猛片aaaaaaa| ㊣最新国产の精品bt伙计久久| 亚洲福利一区二区| 国产成人福利片| 欧美日本免费一区二区三区| 日本一区二区视频在线观看| 亚洲一二三区不卡| 国产精品91xxx| 欧美剧情片在线观看| 中文字幕国产一区| 久久国产免费看| 欧美三级在线视频| 国产欧美1区2区3区| 爽爽淫人综合网网站| 99re热这里只有精品视频| 日韩欧美视频一区| 亚洲一区在线视频观看| 成人免费电影视频| 欧美精品一区二区久久婷婷| 亚洲一区二区在线观看视频 | 国产不卡视频一区二区三区| 欧美日韩视频在线一区二区| 国产精品毛片大码女人| 国内偷窥港台综合视频在线播放| 91福利资源站| 亚洲欧洲日韩av| 国产suv一区二区三区88区| 日韩欧美国产综合一区| 亚洲最大的成人av| 99在线精品观看| 国产欧美精品一区aⅴ影院| 美国av一区二区| 欧美日韩免费一区二区三区 | 91精品国产欧美一区二区18| 中文字幕在线不卡视频| 国产乱人伦偷精品视频不卡| 日韩欧美一级二级三级| 日韩在线播放一区二区| 在线免费亚洲电影| 亚洲三级在线免费| 成人精品鲁一区一区二区| 久久一留热品黄| 久久99精品久久久久久国产越南| 欧美猛男超大videosgay| 一级做a爱片久久| 色狠狠色噜噜噜综合网| 综合亚洲深深色噜噜狠狠网站| 国产成人三级在线观看| 国产片一区二区三区| 激情久久久久久久久久久久久久久久| 4hu四虎永久在线影院成人| 亚洲mv在线观看| 7777精品伊人久久久大香线蕉| 日韩黄色一级片| 精品国产91久久久久久久妲己 | 亚洲黄色小视频| 色噜噜久久综合| 亚洲与欧洲av电影| 欧美剧情电影在线观看完整版免费励志电影| 亚洲综合一二三区| 欧美精品粉嫩高潮一区二区| 视频一区欧美日韩| 日韩视频国产视频| 精品一区二区日韩| 国产精品久久久久久久久免费樱桃| 成人动漫在线一区| 亚洲人成亚洲人成在线观看图片| 色一情一乱一乱一91av| 亚洲午夜免费视频| 欧美成人高清电影在线| 国产自产v一区二区三区c| 中文字幕乱码久久午夜不卡| 色成人在线视频| 日韩电影在线一区二区| 欧美精品一区二区三区在线播放| 国产白丝精品91爽爽久久| 亚洲欧美乱综合| 欧美日韩国产小视频在线观看| 久久99九九99精品| 中文字幕一区二区三区在线播放 | 丝袜美腿亚洲色图| 久久先锋资源网| www.欧美日韩| 亚洲va欧美va天堂v国产综合| 精品久久久久久最新网址| 成人免费看的视频| 天堂成人国产精品一区| 久久久久久久精|