//----------------------------------------------------------------------------- int main(int argc, char** argv) { //---- s_pTbl_Items_Basic = new CN3TableBase<__TABLE_ITEM_BASIC>; std::string szFN = "Item_Org.tbl"; if(s_pTbl_Items_Basic->LoadFromFile(szFN.c_str()) == false) { printf("Failed to load Item_Org.tbl\n"); system("pause"); return -1; } //---- SQLHANDLE hEnv, hConn; SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &hEnv); SQLSetEnvAttr(hEnv, SQL_ATTR_ODBC_VERSION, (void *)SQL_OV_ODBC3, 0); SQLAllocHandle(SQL_HANDLE_DBC, hEnv, &hConn); if(SQLConnect(hConn, _T("KN_online"), SQL_NTS, _T("knight"), SQL_NTS, _T("knight"), SQL_NTS) == SQL_ERROR) { printf("SQLConnect\n"); system("pause"); return -1; } SQLHANDLE hStmt; SQLAllocHandle(SQL_HANDLE_STMT, hConn, &hStmt); if(SQLExecDirect(hStmt, _T("SELECT TOP(5000) Num, strName FROM ITEM;"), SQL_NTS) == SQL_ERROR) {//TOP(10000) printf("SQLExecDirect\n"); system("pause"); return -1; } long count = 0; SQLINTEGER cbData; while(SQLFetch(hStmt) == SQL_SUCCESS) { _ITEM_TABLE* item = new _ITEM_TABLE(); SQLGetData(hStmt, 1, SQL_C_ULONG, &(item->m_iNum), sizeof(SQLUINTEGER), &cbData); SQLGetData(hStmt, 2, SQL_C_CHAR, item->m_sName, NAME_LENGTH, &cbData); ItemTableMap.PutData(count++, item); __TABLE_ITEM_BASIC* pItem = s_pTbl_Items_Basic->Find(item->m_iNum/1000*1000); if(!pItem) printf("Item \"%s\" is missing from the TBL!\n", item->m_sName); } SQLFreeHandle(SQL_HANDLE_STMT, hStmt); SQLDisconnect(hConn); SQLFreeHandle(SQL_HANDLE_DBC, hConn); SQLFreeHandle(SQL_HANDLE_ENV, hEnv); //---- dirent** dir_list; int num_files = fl_filename_list("./item", &dir_list); num_disp_files = 0; for(int i=0; i<num_files; ++i) { int len_fn = strlen(dir_list[i]->d_name); if(!strcmp(&dir_list[i]->d_name[len_fn-7], "n3cplug") || !strcmp(&dir_list[i]->d_name[len_fn-7], "n3cpart")) { disp_files = (char**)realloc(disp_files, ++num_disp_files*sizeof(char*)); disp_files[num_disp_files-1] = (char*)calloc(len_fn+1, sizeof(char)); memcpy(disp_files[num_disp_files-1], dir_list[i]->d_name, len_fn); //char* filename = disp_files[num_disp_files-1]; //N3MeshConverter::Convert(filename); } } fl_filename_free_list(&dir_list, num_files); //---- Fl::use_high_res_GL(true); Fl_Window window(1024, 720, "KO Item Editor"); GLItemViewer sw(window.w()-_gl_width, 30, _gl_width, _gl_height); m_sw = &sw; ItemTableView demo_table(0, 30, window.w()-(_gl_width+0), _gl_height); demo_table.selection_color(FL_YELLOW); demo_table.when(FL_WHEN_RELEASE|FL_WHEN_CHANGED); demo_table.table_box(FL_NO_BOX); demo_table.col_resize_min(4); demo_table.row_resize_min(4); demo_table.row_header(true); demo_table.row_header_width(60); demo_table.row_resize(true); demo_table.rows(num_disp_files /*ItemTableMap.GetSize()*/); demo_table.row_height_all(20); demo_table.col_header(true); demo_table.col_header_height(25); demo_table.col_resize(true); demo_table.cols(1 /*2*/); demo_table.col_width_all(150); Fl_Menu_Bar menubar(0, 0, window.w(), 30); menubar.menu(menu_table); menubar.callback(test_cb); // TODO: need to add the positions and widths/heights as variables Fl_Tabs info_tabs(0, _gl_height+40, window.w(), window.h()-_gl_height-30-10); Fl_Group group(0, _gl_height+40+35, window.w(), window.h()-_gl_height-30-10, "Table Info"); tbl_id = new Fl_Int_Input(80, _gl_height+30+35+20+5, 240, 30, "ID:"); tbl_ext_index = new Fl_Int_Input(80, _gl_height+30+35+20+40+5, 240, 30, "Ext Index:"); tbl_name = new Fl_Input (80, _gl_height+30+35+20+80+5, 240, 30, "Name:"); tbl_remark = new Fl_Input (80, _gl_height+30+35+20+120+5, 240, 30, "Remark:"); group.end(); Fl_Group group2(0, _gl_height+40+35, window.w(), window.h()-_gl_height-30-10, "Database Info"); Fl_Input input2(10, _gl_height+30+35+20, 240, 30); group2.end(); info_tabs.end(); window.end(); window.show(argc, argv); sw.show(); sw.redraw_overlay(); return Fl::run(); }
void DemoMain::Run() { base::EnableTerminationOnHeapCorruption(); base::AtExitManager exit_manager; FilePath res_dll; PathService::Get(base::DIR_EXE, &res_dll); res_dll = res_dll.Append(L"wanui_res.dll"); ui::ResourceBundle::InitSharedInstance(res_dll); MessageLoop main_message_loop(MessageLoop::TYPE_UI); DCHECK(contents_ == NULL) << "Run called more than once."; contents_ = new view::View(); contents_->set_background(view::Background::CreateStandardPanelBackground()); view::GridLayout* layout = new view::GridLayout(contents_); contents_->SetLayoutManager(layout); view::ColumnSet* column_set = layout->AddColumnSet(0); column_set->AddColumn(view::GridLayout::FILL, view::GridLayout::FILL, 1, view::GridLayout::USE_PREF, 0, 0); view::TabbedPane* tabbed_pane = new view::TabbedPane(); tabbed_pane->set_listener(this); status_label_ = new view::Label(); layout->StartRow(1, 0); layout->AddView(tabbed_pane); layout->StartRow(0, 0); layout->AddView(status_label_); view::Widget* window = view::Widget::CreateWindowWithBounds(this, gfx::Rect(0, 0, 800, 400)); DCHECK(!status_tray_.get()); status_tray_.reset(StatusTray::Create()); main_status_icon_ = status_tray_->CreateStatusIcon(); main_status_icon_->SetToolTip(L"View Demo\[email protected]"); main_status_icon_->SetImage(ui::ResourceBundle::GetSharedInstance().GetImageNamed( IDR_PRODUCT_LOGO_16)); DemoLabel demo_label(this); DemoButton demo_button(this); DemoMisc demo_misc(this); DemoTable demo_table(this); DemoList demo_list(this); DemoTextfiled demo_textfiled(this); DemoAnimate demo_animate(this); DemoBubble demo_bubble(this); DemoActiveX demo_activex(this); DemoWebBrowser demo_webbrowser(this); DemoHtml demo_html(this); DemoSilverlight demo_silverlight(this); tabbed_pane->AddTab(demo_label.GetDemoTitle(), demo_label.GetDemoView()); tabbed_pane->AddTab(demo_button.GetDemoTitle(), demo_button.GetDemoView()); tabbed_pane->AddTab(demo_misc.GetDemoTitle(), demo_misc.GetDemoView()); tabbed_pane->AddTab(demo_table.GetDemoTitle(), demo_table.GetDemoView()); tabbed_pane->AddTab(demo_list.GetDemoTitle(), demo_list.GetDemoView()); tabbed_pane->AddTab(demo_textfiled.GetDemoTitle(), demo_textfiled.GetDemoView()); tabbed_pane->AddTab(demo_animate.GetDemoTitle(), demo_animate.GetDemoView()); tabbed_pane->AddTab(demo_bubble.GetDemoTitle(), demo_bubble.GetDemoView()); tabbed_pane->AddTab(demo_activex.GetDemoTitle(), demo_activex.GetDemoView()); tabbed_pane->AddTab(demo_webbrowser.GetDemoTitle(), demo_webbrowser.GetDemoView()); tabbed_pane->AddTab(demo_html.GetDemoTitle(), demo_html.GetDemoView()); tabbed_pane->AddTab(demo_silverlight.GetDemoTitle(), demo_silverlight.GetDemoView()); window->Show(); view::AcceleratorHandler accelerator_handler; MessageLoopForUI::current()->Run(&accelerator_handler); ui::ResourceBundle::CleanupSharedInstance(); }