Develop and Download Open Source Software

Browse Subversion Repository

Contents of /trunk/CSkinSelectMode.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1 - (show annotations) (download) (as text)
Sun Aug 15 01:53:13 2010 UTC (13 years, 9 months ago) by okadu
File MIME type: text/x-c++src
File size: 4346 byte(s)


1 #include "stdafx.h"
2 #include "CSkinPlugin.h"
3 #include "CSkinSelectMode.h"
4
5 // 内部定数
6 const int WW = TILE_UNIT*20, WH = TILE_UNIT*17+TILE_HALF*5; // 窓サイズ
7
8 /*
9 * コンストラクタ
10 */
11 CSkinSelectMode::CSkinSelectMode():
12 CPluginMode(lang(SkinPlugin)) // 基本クラス
13 {
14 int i;
15 m_TestWindow.Init((g_DispWidth-WW)*2/3, (g_DispHeight-WH)/2,
16 WW, WH, lang(InterfaceTest), &m_Interface, true);
17 m_TestWindow.SetResize(WW-TILE_UNIT*2, WH-TILE_UNIT*2, g_DispWidth, g_DispHeight, this);
18 m_PropertyLabel.Init(0, 0, 1, 1, lang(PluginInfo), &m_TestWindow, 0, 1);
19 char *plcol[2] = {lang(Properties), lang(Value)};
20 m_PropertyList.Init(
21 0, 0, WW-TILE_UNIT*2, 1, &m_TestWindow, 2, plcol, DRAG_NONE, 0);
22 m_TestLabel.Init(0, 0, 1, 1, lang(Test), &m_TestWindow, 0, 1);
23 for(i = 0; i<2; i++) m_CheckTest[i].Init(
24 0, 0, 1, 1, FlashIn("CheckBox%d", i), &m_TestWindow);
25 m_CheckTest[0].SetCheck(1);
26 m_GroupTest.Init(0, 0, 1, 1, "GroupBox", &m_TestWindow);
27 for(i = 0; i<2; i++) m_RadioTest[i].Init(0, 0, 1, 1, FlashIn("RadioButton%d", i),
28 &m_GroupTest, i ? &m_RadioTest[i-1] : NULL);
29 m_EditTest.Init(0, 0, 1, 1, "EditCtrl", &m_TestWindow, 64);
30 m_PushTest.Init(0, 0, 1, 1, "PushButton", &m_TestWindow);
31 WindowResized(WW, WH, &m_TestWindow);
32 m_TestWindow.Show(false);
33 CListElement *property;
34 property = m_PropertyList.InsertItem(0, "ID");
35 if(g_Skin) property->SetString(1, g_Skin->GetID());
36 property = m_PropertyList.InsertItem(1, lang(Name));
37 if(g_Skin) property->SetString(1, g_Skin->GetName());
38 property = m_PropertyList.InsertItem(2, lang(Author));
39 if(g_Skin) property->SetString(1, g_Skin->GetAuthor());
40 }
41
42 /*
43 * ウィンドウリサイズ
44 */
45 void CSkinSelectMode::WindowResized(
46 int w, int h, // 新規サイズ
47 CWindowCtrl *wnd // ウィドウコントロール
48 ){
49 if(wnd==&m_TestWindow){
50 int i, ty = h-WH;
51 m_PropertyLabel.SetPos(TILE_UNIT, TILE_UNIT*2);
52 m_PropertyLabel.SetSize(w-TILE_UNIT*2, TILE_UNIT);
53 m_PropertyList.SetPos(TILE_UNIT, TILE_UNIT*3+TILE_HALF);
54 m_PropertyList.SetSize(w-TILE_UNIT*2, TILE_UNIT*5+ty);
55 m_TestLabel.SetPos(TILE_UNIT, TILE_UNIT*9+TILE_HALF+ty);
56 m_TestLabel.SetSize(w-TILE_UNIT*2, TILE_UNIT);
57 for(i = 0; i<2; i++){
58 m_CheckTest[i].SetPos(
59 TILE_UNIT+i*((w-TILE_UNIT*3)/2+TILE_UNIT), TILE_UNIT*10+TILE_HALF*2+ty);
60 m_CheckTest[i].SetSize((w-TILE_UNIT*3)/2, TILE_UNIT);
61 }
62 m_GroupTest.SetPos(TILE_UNIT, TILE_UNIT*11+TILE_HALF*3+ty);
63 m_GroupTest.SetSize(w-TILE_UNIT*2, TILE_UNIT*3);
64 for(i = 0; i<2; i++){
65 m_RadioTest[i].SetPos(TILE_UNIT+i*((w-TILE_UNIT*5)/2+TILE_UNIT), TILE_UNIT+4);
66 m_RadioTest[i].SetSize((w-TILE_UNIT*5)/2, TILE_UNIT);
67 }
68 m_EditTest.SetPos(TILE_UNIT, TILE_UNIT*14+TILE_HALF*4+ty);
69 m_EditTest.SetSize(w-TILE_UNIT*2, TILE_UNIT);
70 m_PushTest.SetPos(w-TILE_UNIT*9, TILE_UNIT*15+TILE_HALF*5+ty);
71 m_PushTest.SetSize(TILE_UNIT*8, TILE_UNIT);
72 }else{
73 CPluginMode::WindowResized(w, h, wnd);
74 }
75 }
76
77 /*
78 * メニュー発行
79 */
80 CPopMenu *CSkinSelectMode::Dispatch(
81 CMDTYPE type, // コマンドタイプ
82 DWORD data // データ
83 ){
84 return CPluginMode::Dispatch(type, data);
85 }
86
87 /*
88 * プラグインリスト取得
89 */
90 CPluginList *CSkinSelectMode::GetPluginList(){
91 return g_SkinPluginList;
92 }
93
94 /*
95 * モードを有効化
96 */
97 void CSkinSelectMode::EnterPlugin(){
98 ms_ModeLabel = lang(SelectSkin);
99 if(!g_RSPV) m_PluginTree.SelectPlugin(g_Skin);
100 m_TestWindow.Show(true);
101 if(!*m_InfoStatic.GetText() && g_Skin) g_Skin->SetPreview();
102 }
103
104 /*
105 * 入力チェック
106 */
107 void CSkinSelectMode::ScanInputPlugin(){
108 bool f = m_Interface.ScanInput();
109 if(m_ListWindow.CheckClose()){
110 m_ListWindow.Show(false);
111 return;
112 }
113 if(m_TestWindow.CheckClose()){
114 SetNeutral();
115 return;
116 }
117 CTreeElement *el = m_PluginTree.GetPushedItem();
118 if(el){
119 CTreeFileElement *fe = el->IsFile();
120 if(fe){
121 m_TestWindow.Show(true);
122 CPlugin *pi = fe->GetPlugin();
123 m_PropertyList.GetElement(0)->SetString(1, pi->GetID());
124 m_PropertyList.GetElement(1)->SetString(1, pi->GetName());
125 m_PropertyList.GetElement(2)->SetString(1, pi->GetAuthor());
126 ms_TopPanelTime = ms_RightPanelTime = MAXFPS*3;
127 }else{
128 m_TestWindow.Show(false);
129 }
130 }
131 if(f || !CPlugin::IsPreview()) return;
132 if(GetButton(DIM_RIGHT)==S_PUSH){
133 POINT pos = g_Cursor.GetPos();
134 m_PreviewMenu->Popup(pos.x, pos.y);
135 }
136 }

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26