Files
2022-10-26 12:25:11 +08:00

124 lines
3.7 KiB
C++

#pragma once
#ifdef _DEV_VER
#ifdef _NA_006519_20130311_TEXTURE_VIEWER
#include "uiBase.h"
#include "DropdownControl.h"
#include "VScrollDialog.h"
#include "TreeController.h"
class uiTextureViewerMan;
class uiTextureViewerSearchWindow : public uiBase, public VScrollDialog
{
enum UIControlPos
{
kControl_Button_B004 = 0,
kControl_Button_B000,
kControl_Button_B001,
kControl_Button_B002,
kControl_Button_B003,
kControl_Text_T100,
kControl_Text_S000,
kControl_Text_S001,
kControl_Text_S002,
kControl_Text_T001,
kControl_Edit_E001,
kControl_Edit_E002,
kControl_List_L000,
kControl_Picture_P003,
kControl_Picture_P002,
kControl_Picture_P000,
kControl_Picture_P001,
kControl_Picture_P004,
kControl_Picture_P005,
kControl_Picture_P007,
kControl_Picture_P006,
kControl_Picture_P008,
kControl_Scroll_V001,
kControl_Picture_L000,
kControl_Size,
};
public:
enum UIMode
{
kCreateMode = 0,
kModeMax,
};
struct st_File_Data
{
std::string title;
std::string full_path;
};
public:
uiTextureViewerSearchWindow(InterfaceManager* ui_manager);
virtual ~uiTextureViewerSearchWindow(void);
protected:
virtual CCtrlVScrollWZ* vscroll_control();// 추상 메소드
virtual bool GetScrollArea(RECT& area); // 추상 메소드
public:
virtual void Init(CDrawBase* draw_base);
virtual void Release();
virtual void OnUpdateSolarDialog();
virtual void OnRenderSolarDialog();
virtual void MessageProc(SI_MESSAGE* message);
virtual void MouseOver_MsgProc(SI_MESSAGE* message);
virtual void OnShowWindow(BOOL is_show);
virtual void Process(DWORD tick_count);
private:
void ModeButtonRender(const RECT& DestRect);
private:
bool OnLButtonClick(SI_MESSAGE* message);
bool OnRButtonClick(SI_MESSAGE* message);
bool OnMouseOver(SI_MESSAGE* message);
bool OnDoubleLButtonClick(SI_MESSAGE* message);
void OnMouseWheelScroll(BYTE mouse_wheel_state);
bool OnVScrollUp(SI_MESSAGE* message);
bool OnVScrollDown(SI_MESSAGE* message);
bool OnVScrollThumb(SI_MESSAGE* msg);
bool OnEditEnterKeyDown(SI_MESSAGE* message);
private:
void RegisterESCKeyClose(BOOL is_value);
static void ESCKeyProcess(DWORD wParam, DWORD lParam);
void SetMode(BYTE mode);// 여기서 스트링 지정
void TreeControllerMessageProc(SI_MESSAGE* message);
void ViewerClose();
void CheckModeButton();
private: // 파일 리스트에 관한 함수
void FileList(char* file_path, HTREEITEM h_parent);
void make_path(/*경로*/TCHAR* file_path, /*파일 이름*/TCHAR* file_name, /*출력*/TCHAR* full_path);
void Change_Texture_Window_Texture(TCHAR* full_path);
void SearchFileList(TCHAR* file_name);
private:
void set_scroll_tick_move_value(const int& scroll_tick_move);
protected:
void RegisterControl();
public:
void StartTree(void); // 처음 //뷰어 를 입력 했을 때 Tree를 구성해 주기 위한 함수
bool get_Is_start(void) const;
bool get_Is_grid_mode(void) const;
private:
std::vector<std::string> file_list_vector_;
CCtrlListWZ* list_control_;
CCtrlVScrollWZ* vscroll_control_;
TreeController* tree_controller_;
HTREEITEM sel_item_; // 선택 된 값을 저장 해 놓고 비교해 가며 쓴다.
uiTextureViewerMan* ui_texture_viewer_manager_;
std::list<st_File_Data> file_list_;
std::list<st_File_Data> edit_list_;
bool Is_edit_mode_;
HANDLE ui_edit_mode_texture_;
RECT edit_mode_texture_rect_;
bool Is_start;
HANDLE ui_grid_mode_texture_;
RECT grid_mode_texture_rect_;
bool Is_grid_mode_;
int scroll_tick_move_;
};
#endif
#endif