bool DoStyleConfigDialog(NCDialogParent *parent) { wcmConfig.ImpCurrentFonts(); ccollect<StyleOptDialog::Node> list; list.append(StyleOptDialog::Node( _LT("Panel") , false, panelFont.ptr(), &wcmConfig.panelFontUri)); list.append(StyleOptDialog::Node( _LT("Dialog"), false, dialogFont.ptr(), &wcmConfig.dialogFontUri)); list.append(StyleOptDialog::Node( _LT("Viewer"), true, viewerFont.ptr(), &wcmConfig.viewerFontUri)); list.append(StyleOptDialog::Node( _LT("Editor"), true, editorFont.ptr(), &wcmConfig.editorFontUri)); list.append(StyleOptDialog::Node( _LT("Terminal"), true, terminalFont.ptr(), &wcmConfig.terminalFontUri)); list.append(StyleOptDialog::Node( _LT("Help text"), false, helpTextFont.ptr(), &wcmConfig.helpTextFontUri)); list.append(StyleOptDialog::Node( _LT("Help bold text"), false, helpBoldFont.ptr(), &wcmConfig.helpBoldFontUri)); list.append(StyleOptDialog::Node( _LT("Help header text"), false, helpHeadFont.ptr(), &wcmConfig.helpHeadFontUri)); StyleOptDialog dlg(parent, &list); if (dlg.DoModal() == CMD_OK) { if (dlg.styleBlackButton.IsSet()) { wcmConfig.viewColorMode = wcmConfig.editColorMode = wcmConfig.panelColorMode = 1; // wcmConfig.whiteStyle = false; } else if (dlg.styleWhiteButton.IsSet()) { wcmConfig.viewColorMode = wcmConfig.editColorMode = wcmConfig.panelColorMode = 2; // wcmConfig.whiteStyle = true; } else { wcmConfig.viewColorMode = wcmConfig.editColorMode = wcmConfig.panelColorMode = 0; // wcmConfig.whiteStyle = false; } SetColorStyle(wcmConfig.panelColorMode); // SetEditorColorStyle(wcmConfig.editColorMode); // SetViewerColorStyle(wcmConfig.viewColorMode); wcmConfig.showToolBar = dlg.showToolbarButton.IsSet(); wcmConfig.showButtonBar = dlg.showButtonbarButton.IsSet(); for (int i = 0; i<list.count(); i++) if (list[i].newFont.ptr() && list[i].newFont->uri()[0] && list[i].pUri) { *(list[i].pUri) = new_char_str(list[i].newFont->uri()); } return true; } return false; }
int main( int argc, char** argv ) #endif { try { #ifdef _WIN32 SetHighDPIAware(); //disable system critical messageboxes (for example: no floppy disk :) ) SetErrorMode( SEM_FAILCRITICALERRORS ); Win32HInstance = hInstance; Win32HIconId = IDI_WCM; WSADATA wsaData; if ( WSAStartup( MAKEWORD( 2, 2 ), &wsaData ) ) { throw_syserr( 0, "WSAStartup failed" ); } std::string StartupDir; #else setlocale( LC_ALL, "" ); signal( SIGPIPE, SIG_IGN ); std::string StartupDir = GetStartupDir( argv[0] ); #endif try { InitConfigPath(); g_WcmConfig.Load( nullptr, StartupDir ); const char* langId = g_WcmConfig.systemLang.data() ? g_WcmConfig.systemLang.data() : "+"; #ifdef _WIN32 if ( !InitLocale( L"install-files/share/wcm/lang", langId ) ) { InitLocale( carray_cat<sys_char_t>( GetAppPath().data(), utf8_to_sys( "lang" ).data() ).data(), langId ); } #else if ( !InitLocale( "install-files/share/wcm/lang", langId ) ) { InitLocale( UNIX_CONFIG_DIR_PATH "/lang", langId ); } #endif // SetEditorColorStyle(g_WcmConfig.editColorMode); // SetViewerColorStyle(g_WcmConfig.viewColorMode); } catch ( cexception* ex ) { fprintf( stderr, "%s\n", ex->message() ); ex->destroy(); } InitSSH(); AppInit(); SetColorStyle( g_WcmConfig.styleColorTheme); OldSysGetFont = SysGetFont; SysGetFont = MSysGetFont; // cfont* defaultFont = SysGetFont( 0, 0 ); defaultGC = new wal::GC( ( Win* )0 ); #ifndef _WIN32 #include "icons/wcm.xpm" Win::SetIcon( wcm_xpm ); #endif InitFonts(); InitOperCharsets(); SetCmdIcons(); NCWin ncWin; g_MainWin = &ncWin; // reload config with a valid NCWin g_WcmConfig.Load( &ncWin, StartupDir ); ncWin.Enable(); ncWin.Show(); InitExtensionApp(); #if !defined( _WIN32 ) // don't bother with this on Windows if ( !ParseCommandLine( argc, argv, &ncWin ) ) { return 0; } #endif for ( auto i = g_Applets.begin(); i != g_Applets.end(); i++ ) { if ( !( *i )->Run() ) { return 0; } } g_Applets.clear(); AppRun(); // clean up RemoveAllWcmTempDirs(); dbg_printf( "App Quit!!!\n" ); } catch ( cexception* ex ) { #ifdef _WIN32 MessageBoxA( 0, ex->message(), "", MB_OK ); #else printf( "Error: %s\n", ex->message() ); #endif } return 0; }
int main( int argc, char** argv ) #endif { try { #ifndef _WIN32 for ( int i = 1; i < argc; i++ ) { if ( argv[i][0] == '-' && argv[i][1] == '-' && !strcmp( argv[i] + 2, "dlg" ) ) { createDialogAsChild = false; } } #endif #ifdef _WIN32 //disable system critical messageboxes (for example: no floppy disk :) ) SetErrorMode( SEM_FAILCRITICALERRORS ); #endif #ifdef _WIN32 Win32HInstance = hInstance; Win32HIconId = IDI_WCM; #endif #ifdef _WIN32 WSADATA wsaData; if ( WSAStartup( MAKEWORD( 2, 2 ), &wsaData ) ) { throw_syserr( 0, "WSAStartup failed" ); } #else setlocale( LC_ALL, "" ); signal( SIGPIPE, SIG_IGN ); #endif try { InitConfigPath(); g_WcmConfig.Load( NULL ); const char* langId = g_WcmConfig.systemLang.data() ? g_WcmConfig.systemLang.data() : "+"; #ifdef _WIN32 InitLocale( carray_cat<sys_char_t>( GetAppPath().data(), utf8_to_sys( "lang" ).data() ).data(), langId ); #else if ( !InitLocale( "install-files/share/wcm/lang", langId ) ) { InitLocale( UNIX_CONFIG_DIR_PATH "/lang", langId ); } #endif // SetEditorColorStyle(g_WcmConfig.editColorMode); // SetViewerColorStyle(g_WcmConfig.viewColorMode); } catch ( cexception* ex ) { fprintf( stderr, "%s\n", ex->message() ); ex->destroy(); } InitSSH(); AppInit(); SetColorStyle( g_WcmConfig.styleColorMode ); OldSysGetFont = SysGetFont; SysGetFont = MSysGetFont; // cfont* defaultFont = SysGetFont( 0, 0 ); defaultGC = new wal::GC( ( Win* )0 ); #ifndef _WIN32 #include "icons/wcm.xpm" Win::SetIcon( wcm_xpm ); #endif InitFonts(); InitOperCharsets(); SetCmdIcons(); NCWin ncWin; // reload config with a valid NCWin g_WcmConfig.Load( &ncWin ); ncWin.Enable(); ncWin.Show(); InitExtensionApp(); AppRun(); dbg_printf( "App Quit!!!" ); } catch ( cexception* ex ) { #ifdef _WIN32 MessageBoxA( 0, ex->message(), "", MB_OK ); #else printf( "Error: %s\n", ex->message() ); #endif } return 0; }