Example #1
0
//-----------------------------------------------------------------------------
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();
}
Example #2
0
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();
}