static UniqueResponse message_received_cb (UniqueApp *app, UniqueCommand command, UniqueMessageData *message, guint time_, gpointer user_data) { UniqueResponse res; gchar *feed; debug1(DEBUG_GUI, "libunique command received >>>%d<<<", command); switch (command) { case UNIQUE_ACTIVATE: /* Raise the liferea window */ debug0 (DEBUG_GUI, "-> raise window requested"); liferea_shell_present (); res = UNIQUE_RESPONSE_OK; break; case COMMAND_ADD_FEED: feed = unique_message_data_get_text (message); feedlist_add_subscription (feed, NULL, NULL, 0); res = UNIQUE_RESPONSE_OK; break; default: g_warning ("Received unknown libunique command: >>>%d<<<", command); res = UNIQUE_RESPONSE_OK; break; } return res; }
UniqueResponse message_cb(UniqueApp *a, gint id, UniqueMessageData *message_data, guint time, gpointer data) { (void) a; (void) id; (void) time; if (message_data) { lua_State *L = (lua_State*)data; /* get message text */ gchar *text = unique_message_data_get_text(message_data); lua_pushstring(L, text); g_free(text); /* get message screen */ GdkScreen *screen = unique_message_data_get_screen(message_data); lua_pushlightuserdata(L, screen); /* emit signal */ signal_object_emit(L, unique_class.signals, "message", 2, 0); } return UNIQUE_RESPONSE_OK; }
static UniqueResponse message_received_cb (UniqueApp *app, UniqueCommand command, UniqueMessageData *message, guint time_, gpointer user_data) { UniqueResponse res = UNIQUE_RESPONSE_OK; MyEditor* top = NULL; MyTabWindow* mtw = NULL; switch(command) { case UNIQUE_NEW: { MyEditorHandlerLin* meh = (MyEditorHandlerLin*)MyEditorHandlerLin::getInstance(); top = meh->getTopEditor(); if( top ) mtw = top->getTabWindow(); meh->createEditor(mtw,NULL,0); //gtk_window_set_screen (GTK_WINDOW (ed->getWindow()), unique_message_data_get_screen (message)); //gtk_window_present_with_time( GTK_WINDOW(ed->getWindow()), time_); } break; case UNIQUE_OPEN: { char* f = NULL; char* lineStr = NULL; int line = 0; MyEditor* me = NULL; MyEditorHandlerLin* meh = (MyEditorHandlerLin*)MyEditorHandlerLin::getInstance(); top = meh->getTopEditor(); if( top ) mtw = top->getTabWindow(); char* file = unique_message_data_get_text(message); char* atSym = strrchr(file,'@'); if( atSym ) { lineStr = atSym + 1; *atSym = '\0'; line = atoi(lineStr); } f = fileFullPath(file); if( f ) me = meh->findEditor(f); else return UNIQUE_RESPONSE_FAIL; if( me ) { meh->setTopEditor(me); // gtk_window_set_screen (GTK_WINDOW (me->getWindow()), unique_message_data_get_screen (message)); //cd gtk_window_present_with_time( GTK_WINDOW(me->getWindow()), time_); } else { me = meh->createEditor(mtw,file,line+20); } me->focus(); me->gotoLine(line-1); if( f ) free(f); if( file ) free(file); } break; default: { } break; // do nothing } return res; }