/* * process message */ void process_message( void ) { unsigned long type, length, body[sizeof(struct ConfigWinPacket)]; read_f( Fdr, (char*)&type, SOL); read_f( Fdr, (char*)&length, SOL); read_f( Fdr, (char*)body, length ); if( type==M_ERROR ) { fprintf( stderr,"%s", (char *)&body[3] ); } else if( Opt_info >= 1 ) { switch( type ) { case M_WINDOW_NAME: list( body, "window"); break; case M_ICON_NAME: list(body, "icon"); break; case M_RES_CLASS: list(body, "class" ); break; case M_RES_NAME: list(body, "resource"); break; case M_END_WINDOWLIST: list_string("end windowlist"); break; case M_ICON_FILE: list(body, "icon file"); break; case M_ICON_LOCATION: list_icon_loc(body); break; case M_END_CONFIG_INFO: list_string("end configinfo"); break; case M_DEFAULTICON: list(body, "default icon"); break; case M_MINI_ICON: list_mini_icon( body ); break; case M_CONFIG_INFO: printf( "%s\n", (char *)&body[3] ); break; case MX_REPLY: list(body, "reply"); break; default: if( Opt_info >=2 ) { switch(type) { case M_CONFIGURE_WINDOW: list_configure( body); break; case M_STRING: list(body, "string"); break; default: if( Opt_info >= 3 ) { switch( type ) { case M_NEW_PAGE: list_new_page(body); break; case M_NEW_DESK: list_new_desk(body); break; case M_ADD_WINDOW: list_header(body, "add"); list_configure( body); break; case M_RAISE_WINDOW: list_header(body, "raise"); break; case M_LOWER_WINDOW: list_header(body, "lower"); break; case M_FOCUS_CHANGE: list_focus_change( body ); break; case M_DESTROY_WINDOW: list_header(body, "destroy"); break; case M_ICONIFY: list_iconify( body ); break; case M_DEICONIFY: list_header(body, "deiconify"); break; case M_MAP: list_header(body, "map"); break; case M_WINDOWSHADE: list_header(body, "windowshade"); break; case M_DEWINDOWSHADE: list_header(body, "dewindowshade"); break; default: printf("0x%lx type 0x%lx\n", body[0], type ); } } } } } } }
/*********************************************************************** * * Procedure: * Process message - examines packet types, and takes appropriate action * ***********************************************************************/ void process_message( FvwmPacket* packet ) { unsigned long type = packet->type; unsigned long length = packet->size; unsigned long* body = packet->body; switch (type) { case M_ADD_WINDOW: list_configure(body); break; case M_CONFIGURE_WINDOW: list_configure(body); break; case M_DESTROY_WINDOW: list_destroy(body); break; case M_FOCUS_CHANGE: list_focus(body); break; case M_NEW_PAGE: list_new_page(body); break; case M_NEW_DESK: list_new_desk(body); break; case M_RAISE_WINDOW: list_raise(body); break; case M_LOWER_WINDOW: list_lower(body); break; case M_ICONIFY: case M_ICON_LOCATION: list_iconify(body); break; case M_DEICONIFY: list_deiconify(body, length); break; case M_RES_CLASS: case M_RES_NAME: case M_WINDOW_NAME: list_window_name(body,type); break; case M_ICON_NAME: list_icon_name(body); break; case M_MINI_ICON: list_mini_icon(body); break; case M_END_WINDOWLIST: list_end(); break; case M_RESTACK: list_restack(body,length); break; case M_CONFIG_INFO: list_config_info(body); break; default: /* ignore unknown packet */ break; } }