static void hippo_canvas_block_facebook_event_set_block(HippoCanvasBlock *canvas_block, HippoBlock *block) { /* g_debug("canvas-block-facebook-person set block %p", block); */ if (block == canvas_block->block) return; if (canvas_block->block != NULL) { g_signal_handlers_disconnect_by_func(G_OBJECT(canvas_block->block), G_CALLBACK(on_user_changed), canvas_block); set_person(HIPPO_CANVAS_BLOCK_FACEBOOK_EVENT(canvas_block), NULL); g_signal_handlers_disconnect_by_func(G_OBJECT(HIPPO_BLOCK_FACEBOOK_EVENT(canvas_block->block)), G_CALLBACK(on_title_changed), canvas_block); hippo_canvas_block_set_title(canvas_block, NULL, NULL, FALSE); } /* Chain up to get the block really changed */ HIPPO_CANVAS_BLOCK_CLASS(hippo_canvas_block_facebook_event_parent_class)->set_block(canvas_block, block); if (canvas_block->block != NULL) { HippoThumbnails *thumbnails; g_signal_connect(G_OBJECT(canvas_block->block), "notify::user", G_CALLBACK(on_user_changed), canvas_block); g_signal_connect(G_OBJECT(HIPPO_BLOCK_FACEBOOK_EVENT(canvas_block->block)), "notify::title", G_CALLBACK(on_title_changed), canvas_block); on_user_changed(canvas_block->block, NULL, HIPPO_CANVAS_BLOCK_FACEBOOK_EVENT(canvas_block)); on_title_changed(HIPPO_BLOCK_FACEBOOK_EVENT(canvas_block->block), NULL, HIPPO_CANVAS_BLOCK_FACEBOOK_EVENT(canvas_block)); thumbnails = hippo_block_facebook_event_get_thumbnails(HIPPO_BLOCK_FACEBOOK_EVENT(canvas_block->block)); if (thumbnails != NULL) { g_object_set(HIPPO_CANVAS_BLOCK_FACEBOOK_EVENT(canvas_block)->thumbnails, "thumbnails", thumbnails, NULL); if (hippo_thumbnails_get_count(thumbnails) <= 0) canvas_block->expandable = FALSE; } else { canvas_block->expandable = FALSE; } } }
static void hippo_canvas_block_netflix_movie_dispose(GObject *object) { HippoCanvasBlockNetflixMovie *block; block = HIPPO_CANVAS_BLOCK_NETFLIX_MOVIE(object); set_person(block, NULL); G_OBJECT_CLASS(hippo_canvas_block_netflix_movie_parent_class)->dispose(object); }
static void hippo_canvas_block_facebook_event_dispose(GObject *object) { HippoCanvasBlockFacebookEvent *block_facebook_event; block_facebook_event = HIPPO_CANVAS_BLOCK_FACEBOOK_EVENT(object); set_person(block_facebook_event, NULL); G_OBJECT_CLASS(hippo_canvas_block_facebook_event_parent_class)->dispose(object); }
static void on_user_changed(HippoBlock *block, GParamSpec *arg, /* null when first calling this */ HippoCanvasBlockFacebookEvent *block_facebook_event) { HippoPerson *person; person = NULL; g_object_get(G_OBJECT(block), "user", &person, NULL); set_person(block_facebook_event, person); if (person) g_object_unref(person); }
static void on_user_changed(HippoBlock *block, GParamSpec *arg, /* null when first calling this */ HippoCanvasBlockNetflixMovie *block_netflix) { HippoPerson *person; person = NULL; if (block) g_object_get(G_OBJECT(block), "user", &person, NULL); set_person(block_netflix, person); if (person) g_object_unref(person); }
static void hippo_canvas_block_netflix_movie_set_block(HippoCanvasBlock *canvas_block, HippoBlock *block) { HippoCanvasBlockNetflixMovie *block_netflix = HIPPO_CANVAS_BLOCK_NETFLIX_MOVIE(canvas_block); if (block == canvas_block->block) return; if (canvas_block->block != NULL) { g_signal_handlers_disconnect_by_func(G_OBJECT(canvas_block->block), G_CALLBACK(on_user_changed), canvas_block); g_signal_handlers_disconnect_by_func(G_OBJECT(canvas_block->block), G_CALLBACK(on_block_description_changed), canvas_block); g_signal_handlers_disconnect_by_func(G_OBJECT(canvas_block->block), G_CALLBACK(on_block_chat_id_changed), canvas_block); g_signal_handlers_disconnect_by_func(G_OBJECT(canvas_block->block), G_CALLBACK(on_block_queue_changed), canvas_block); g_signal_handlers_disconnect_by_func(G_OBJECT(canvas_block->block), G_CALLBACK(on_block_image_url_changed), canvas_block); g_signal_handlers_disconnect_by_func(G_OBJECT(canvas_block->block), G_CALLBACK(on_block_title_changed), canvas_block); g_signal_handlers_disconnect_by_func(G_OBJECT(canvas_block->block), G_CALLBACK(on_block_title_link_changed), canvas_block); g_signal_handlers_disconnect_by_func(G_OBJECT(canvas_block->block), G_CALLBACK(on_block_icon_url_changed), canvas_block); set_person(HIPPO_CANVAS_BLOCK_NETFLIX_MOVIE(canvas_block), NULL); } /* Chain up to get the block really changed */ HIPPO_CANVAS_BLOCK_CLASS(hippo_canvas_block_netflix_movie_parent_class)->set_block(canvas_block, block); g_object_set(block_netflix->quipper, "block", canvas_block->block, NULL); g_object_set(block_netflix->last_message_preview, "block", canvas_block->block, NULL); g_object_set(block_netflix->chat_preview, "block", canvas_block->block, NULL); if (canvas_block->block != NULL) { g_signal_connect(G_OBJECT(canvas_block->block), "notify::user", G_CALLBACK(on_user_changed), canvas_block); g_signal_connect(G_OBJECT(canvas_block->block), "notify::description", G_CALLBACK(on_block_description_changed), canvas_block); g_signal_connect(G_OBJECT(canvas_block->block), "notify::chat-id", G_CALLBACK(on_block_chat_id_changed), canvas_block); g_signal_connect(G_OBJECT(canvas_block->block), "notify::queue", G_CALLBACK(on_block_queue_changed), canvas_block); g_signal_connect(G_OBJECT(canvas_block->block), "notify::image-url", G_CALLBACK(on_block_image_url_changed), canvas_block); g_signal_connect(G_OBJECT(canvas_block->block), "notify::title", G_CALLBACK(on_block_title_changed), canvas_block); g_signal_connect(G_OBJECT(canvas_block->block), "notify::title-link", G_CALLBACK(on_block_title_link_changed), canvas_block); g_signal_connect(G_OBJECT(canvas_block->block), "notify::icon-url", G_CALLBACK(on_block_icon_url_changed), canvas_block); } on_user_changed(canvas_block->block, NULL, block_netflix); on_block_description_changed(canvas_block->block, NULL, block_netflix); on_block_chat_id_changed(canvas_block->block, NULL, block_netflix); on_block_queue_changed(canvas_block->block, NULL, block_netflix); on_block_image_url_changed(canvas_block->block, NULL, block_netflix); on_block_title_changed(canvas_block->block, NULL, block_netflix); on_block_title_link_changed(canvas_block->block, NULL, block_netflix); on_block_icon_url_changed(canvas_block->block, NULL, block_netflix); }
EndingOk(char *keys, gk_string *gstr, gk_string *avoidgstr, int wantderiv) { int good = 0; gk_word * BlnkGkword; Cur_gkend = BlankGkend; BlnkGkword = CreatGkword(1); ScanAsciiKeys(keys,BlnkGkword,&Cur_gkend,avoidgstr); FreeGkword(BlnkGkword); if( wantderiv ) { if( ! derivtype_of(gstr) || derivtype_of(gstr) < 0 ) return(0); if( derivtype_of(gstr) != derivtype_of(&Cur_gkend)) return(0); } good = (WantGkEnd(gstr,&Cur_gkend,NO,0) > 0) && (NoWantGkEnd(avoidgstr,&Cur_gkend,1) == 0 ); /* if( ! good ) { printf("gstr [%s] [%s] want %o nowant %o\n",gkstring_of(gstr), gkstring_of(&Cur_gkend), WantGkEnd(gstr,&Cur_gkend,NO,0) , NoWantGkEnd(avoidgstr,&Cur_gkend,1) ); LPrntGstr(gstr,stdout); LPrntGstr(&Cur_gkend,stdout); } */ if( good ) { int case1, case2; int gend1, gend2; int num2, pers2; int voice1, voice2; Dialect dial1, dial2; voice1 = voice_of(forminfo_of(&Cur_gkend)); voice2 = voice_of(forminfo_of(gstr)); if( voice1 ) set_voice(forminfo_of(gstr),voice1); case1 = case_of(forminfo_of(&Cur_gkend)); case2 = case_of(forminfo_of(gstr)); if( case1 & case2 ) set_case(forminfo_of(gstr), (case1 & case2) ); else if( case1 && ! case2 ) set_case(forminfo_of(gstr), case1 ); num2 = number_of(forminfo_of(&Cur_gkend)); if( num2 ) set_number(forminfo_of(gstr), number_of(forminfo_of(&Cur_gkend)) ); pers2 = person_of(forminfo_of(&Cur_gkend)); if( pers2 ) set_person(forminfo_of(gstr), person_of(forminfo_of(&Cur_gkend)) ); gend1 = gender_of(forminfo_of(&Cur_gkend)); gend2 = gender_of(forminfo_of(gstr)); if( gend1 & gend2 ) set_gender(forminfo_of(gstr), (gend1 & gend2) ); else if( gend1 && ! gend2 ) set_gender(forminfo_of(gstr), gend1 ); dial1 = dialect_of(&Cur_gkend); dial2 = dialect_of(gstr); if( dial1 & dial2 ) set_dialect(gstr,(dial1 & dial2) ); else if( dial1 && (! dial2) ) set_dialect(gstr,dial1); add_morphflags(gstr,morphflags_of(&Cur_gkend)); } return( good ); }