static void asgtk_gradient_init (ASGtkGradient *ge) { ge->points = create_asbidirlist( destroy_asgrad_point ); ge->color_preview_width = COLOR_PREVIEW_WIDTH; ge->color_preview_height = COLOR_PREVIEW_HEIGHT; }
void init_ASMount(ASFlagType flags, const char *cmd) { memset( &AppState, 0x00, sizeof(AppState)); AppState.flags = flags ; AppState.tileWidth = DEFAULT_TILE_WIDTH; AppState.tileHeight = DEFAULT_TILE_HEIGHT; createMainWindow(); reloadButtons(); AppState.volumes = create_asbidirlist (ASVolume_destroy); g_type_init(); GVolumeMonitor * monitor = g_volume_monitor_get(); g_signal_connect_object (monitor, "mount-added", G_CALLBACK (mount_added), NULL, 0); g_signal_connect_object (monitor, "mount-changed", G_CALLBACK (mount_changed), NULL, 0); g_signal_connect_object (monitor, "mount-removed", G_CALLBACK (mount_removed), NULL, 0); g_signal_connect_object (monitor, "volume-added", G_CALLBACK (volume_added), NULL, 0); g_signal_connect_object (monitor, "volume-changed", G_CALLBACK (volume_changed), NULL, 0); g_signal_connect_object (monitor, "volume-removed", G_CALLBACK (volume_removed), NULL, 0); GList *tmp; GList *list = g_volume_monitor_get_volumes(G_VOLUME_MONITOR(monitor)); show_activity ("Adding volumes..."); for (tmp = list; tmp != NULL; tmp = tmp->next) { ASVolume *v = ASVolume_newGVolume (tmp->data); if (v) append_bidirelem (AppState.volumes, v); else g_object_unref (tmp->data); } g_list_free (list); #if 1 show_activity ("Adding mounts..."); list = g_volume_monitor_get_mounts(G_VOLUME_MONITOR(monitor)); for (tmp = list; tmp != NULL; tmp = tmp->next) { ASVolume *v = ASVolume_newGMount (tmp->data); if (v) append_bidirelem (AppState.volumes, v); else g_object_unref (tmp->data); } g_list_free (list); #endif AppState.volumeMonitor = monitor; redecorateVolumes (); }
Bool asdbus_init () { /* return connection unix fd */ char *tmp; #ifdef ASDBUS_DISPATCH if (!ASDBus.dispatches) ASDBus.dispatches = create_asbidirlist(asdbus_dispatch_destroy); #endif if (!ASDBus.session_conn) { ASDBus.session_conn = _asdbus_get_session_connection(); if (!dbus_connection_set_watch_functions(ASDBus.session_conn, add_watch, remove_watch, toggle_watch, ASDBus.session_conn, NULL)) { show_error("dbus_connection_set_watch_functions() failed"); } _asdbus_add_match (ASDBus.session_conn, SESSIONMANAGER_INTERFACE, NULL); //_asdbus_add_match (ASDBus.session_conn, IFACE_SESSION_PRIVATE, "QueryEndSession"); //_asdbus_add_match (ASDBus.session_conn, IFACE_SESSION_PRIVATE, "EndSession"); //_asdbus_add_match (ASDBus.session_conn, IFACE_SESSION_PRIVATE, "Stop"); dbus_connection_set_timeout_functions(ASDBus.session_conn, add_timeout, remove_timeout, toggle_timeout, NULL, NULL); #ifdef ASDBUS_DISPATCH dbus_connection_set_dispatch_status_function(ASDBus.session_conn, queue_dispatch, NULL, NULL); queue_dispatch(ASDBus.session_conn, dbus_connection_get_dispatch_status(ASDBus.session_conn), NULL); #endif } if (!ASDBus.system_conn){ ASDBus.system_conn = _asdbus_get_system_connection(); /*if (!dbus_connection_set_watch_functions(ASDBus.system_conn, add_watch, remove_watch, toggle_watch, ASDBus.system_conn, NULL)) { show_error("dbus_connection_set_watch_functions() failed"); }*/ } /*if (ASDBus.session_conn && ASDBus.watchFds == NULL){ //dbus_connection_get_unix_fd (ASDBus.session_conn, &(ASDBus.watch_fd)); //dbus_whatch_get_unix_fd (ASDBus.session_conn, &(ASDBus.watch_fd)); }*/ if ((tmp = getenv ("KDE_SESSION_VERSION")) != NULL) ASDBus.kdeSessionVersion = atoi(tmp); return (ASDBus.session_conn != NULL); }
int main( int argc, char **argv ) { int i ; ASBiDirElem *curr; char *command; action_t *a; ASWinCommandState WinCommandState ; InitMyApp (CLASS_WINCOMMAND, argc, argv, NULL, NULL, OPTION_SINGLE|OPTION_RESTART ); ConnectX( ASDefaultScr, 0 ); ASBiDirList *operations = create_asbidirlist( NULL ); /* Initialize State */ memset( &WinCommandState, 0x00, sizeof(WinCommandState)); /* Traverse arguments */ for( i = 1 ; i< argc ; ++i) { if(argv[i] == NULL) continue; /* If it's a flag */ if(argv[i][0] == '-') { switch( set_WinCommandParam( &WinCommandState, argv[i], (i+1<argc)?argv[i+1]:NULL ) ) { case ASWC_BadParam : case ASWC_BadVal : fprintf( stderr, "bad parameter [%s]\n", argv[i] ); break; case ASWC_Ok_ValUsed : ++i; case ASWC_Ok_ValUnused : break ; } }else { LOCAL_DEBUG_OUT("Adding operation: %s", argv[i]); append_bidirelem(operations, argv[i]); } } if( WinCommandState.pattern == NULL) WinCommandState.pattern = mystrdup(DEFAULT_PATTERN); if( operations->count > 0 ) { ascom_init(); ascom_update_winlist(); /* execute default_handlers */ for( curr = operations->head; curr != NULL; curr = curr->next) if ( (a = get_action_by_name( (char *) curr->data)) ) a->init_defaults(&WinCommandState); /* honor flags */ if( get_flags( WinCommandState.flags, WINCOMMAND_Desk)) select_windows_on_desk(False); else if( ! get_flags( WinCommandState.flags, WINCOMMAND_AllDesks)) select_windows_on_screen(False); if ( ! select_windows_by_pattern(WinCommandState.pattern, !get_flags(WinCommandState.flags, WINCOMMAND_ActOnAll), False) ) LOCAL_DEBUG_OUT("warning: invalid pattern. Reverting to default."); /* apply operations */ for( curr = operations->head; curr != NULL; curr = curr->next) { command = (char *) curr->data; LOCAL_DEBUG_OUT("command: %s", command); if ( (a = get_action_by_name( (char *) curr->data)) ) a->exec_wrapper(&WinCommandState, (char *) curr->data); } ascom_wait(); ascom_deinit(); }else/* interactive mode */ { char *line_read = NULL ; while( (line_read = my_readline()) != NULL ) { char *ptr = line_read; char *cmd = NULL ; ptr = parse_token (ptr, &cmd); if( cmd != NULL && cmd[0] != '\0' ) { if( mystrcasecmp(cmd, "quit") == 0 ) break; if( mystrcasecmp(cmd, "set") == 0 ) { char *param = NULL ; ptr = parse_token (ptr, ¶m); while( isspace(*ptr) ) ++ptr ; switch( set_WinCommandParam( &WinCommandState, param, ptr) ) { case ASWC_BadParam : case ASWC_BadVal : printf("bad parameter [%s]\n", argv[i] ); break; case ASWC_Ok_ValUsed : case ASWC_Ok_ValUnused : #ifdef HAVE_READLINE add_history (line_read); #endif printf( "ok\n"); break ; } }else if( (a = get_action_by_name( cmd )) ) { a->init_defaults(&WinCommandState); ascom_init(); ascom_update_winlist(); if( get_flags( WinCommandState.flags, WINCOMMAND_Desk)) select_windows_on_desk(False); else if( ! get_flags( WinCommandState.flags, WINCOMMAND_AllDesks)) select_windows_on_screen(False); if ( ! select_windows_by_pattern(WinCommandState.pattern, !get_flags(WinCommandState.flags, WINCOMMAND_ActOnAll), False) ) LOCAL_DEBUG_OUT("warning: invalid pattern. Reverting to default."); a->exec_wrapper(&WinCommandState, ptr); ascom_wait(); ascom_deinit(); #ifdef HAVE_READLINE add_history (line_read); #endif printf( "ok\n"); }else { /* try to parse it as AS function */ printf( "bad command\n"); } free( cmd ) ; } free( line_read ); } printf( "\nbye bye\n" ); } destroy_asbidirlist( &operations ); return 0 ; }