static void
asgtk_gradient_dispose (GObject *object)
{
  	ASGtkGradient *ge = ASGTK_GRADIENT (object);
	if( ge->points ) 
		destroy_asbidirlist( &(ge->points) );
	if( ge->point_list_model )
	{	
		g_object_unref (ge->point_list_model);
		ge->point_list_model = NULL ;
	}

  	G_OBJECT_CLASS (parent_class)->dispose (object);
}
Example #2
0
void
DeadPipe (int nonsense)
{
	static int already_dead = False ; 

	if( already_dead ) 
		return;
	already_dead = True ;

	g_signal_handlers_disconnect_by_func (AppState.volumeMonitor, G_CALLBACK (mount_added), NULL);
  g_signal_handlers_disconnect_by_func (AppState.volumeMonitor, G_CALLBACK (mount_changed), NULL);
  g_signal_handlers_disconnect_by_func (AppState.volumeMonitor, G_CALLBACK (mount_removed), NULL);
  g_signal_handlers_disconnect_by_func (AppState.volumeMonitor, G_CALLBACK (volume_added), NULL);
  g_signal_handlers_disconnect_by_func (AppState.volumeMonitor, G_CALLBACK (volume_changed), NULL);
  g_signal_handlers_disconnect_by_func (AppState.volumeMonitor, G_CALLBACK (volume_removed), NULL);
	
	destroy_asbidirlist ( &(AppState.volumes));

	free_button_resources (AppState.buttons[0]);
	free_button_resources (AppState.buttons[1]);

	
/*	window_data_cleanup();
    destroy_ascanvas( &PagerState.main_canvas );
    destroy_ascanvas( &PagerState.icon_canvas );
    
    if( Config )
        DestroyPagerConfig (Config);
*/
    FreeMyAppResources();
#ifdef DEBUG_ALLOCS
	print_unfreed_mem ();
#endif /* DEBUG_ALLOCS */

    XFlush (dpy);
    XCloseDisplay (dpy);
    exit (0);
}
Example #3
0
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, &param);
					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 ;
}