Blame demos/scrapbook/scrapbook.h

Packit 4b6dd7
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
Packit 4b6dd7
/*
Packit 4b6dd7
 * GData Client
Packit 4b6dd7
 * Copyright (C) Joe Cortes 2010 <escozzia@gmail.com>
Packit 4b6dd7
 *
Packit 4b6dd7
 * GData Client is free software; you can redistribute it and/or
Packit 4b6dd7
 * modify it under the terms of the GNU Lesser General Public
Packit 4b6dd7
 * License as published by the Free Software Foundation; either
Packit 4b6dd7
 * version 2.1 of the License, or (at your option) any later version.
Packit 4b6dd7
 *
Packit 4b6dd7
 * GData Client is distributed in the hope that it will be useful,
Packit 4b6dd7
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 4b6dd7
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit 4b6dd7
 * Lesser General Public License for more details.
Packit 4b6dd7
 *
Packit 4b6dd7
 * You should have received a copy of the GNU Lesser General Public
Packit 4b6dd7
 * License along with GData Client.  If not, see <http://www.gnu.org/licenses/>.
Packit 4b6dd7
 */
Packit 4b6dd7
Packit 4b6dd7
#include <stdio.h>
Packit 4b6dd7
#include <stdlib.h>
Packit 4b6dd7
#include <gtk/gtk.h>
Packit 4b6dd7
#include <gdata/gdata.h>
Packit 4b6dd7
#include <glib.h>
Packit 4b6dd7
#include <glib-object.h>
Packit 4b6dd7
#define DEVELOPER_KEY "AI39si5MkSF-0bzTmP5WETk1D-Z7inHaQJzX13PeG_5Uzeu8mz3vo40cFoqnxjejB-UqzYFrqzOSlsqJvHuPNEGqdycqnPo30A"
Packit 4b6dd7
#define CLIENT_ID "ytapi-GNOME-libgdata-444fubtt-0"
Packit 4b6dd7
#define THUMBNAIL_WIDTH 180
Packit 4b6dd7
#define MAX_RESULTS 	10
Packit 4b6dd7
Packit 4b6dd7
/* how this works is that there's a struct for every window opened
Packit 4b6dd7
 * they contain that individual window's data
Packit 4b6dd7
 * and every one of them (except for scrap data, which is for the main window)
Packit 4b6dd7
 * has a pointer to the one for the main window called main_data */
Packit 4b6dd7
Packit 4b6dd7
enum {
Packit 4b6dd7
	COL_PIXBUF,
Packit 4b6dd7
	COL_TITLE,
Packit 4b6dd7
	COL_VIDEO,
Packit 4b6dd7
	N_COLS
Packit 4b6dd7
};
Packit 4b6dd7
Packit 4b6dd7
enum {
Packit 4b6dd7
	P_COL_PIXBUF,
Packit 4b6dd7
	P_COL_TITLE,
Packit 4b6dd7
	P_COL_USER,
Packit 4b6dd7
	P_COL_PIC,
Packit 4b6dd7
	P_N_COLS
Packit 4b6dd7
};
Packit 4b6dd7
Packit 4b6dd7
Packit 4b6dd7
enum {
Packit 4b6dd7
	ORIG_COL_PIXBUF,
Packit 4b6dd7
	ORIG_COL_TITLE,
Packit 4b6dd7
	ORIG_COL_ENTRY,
Packit 4b6dd7
	ORIG_N_COLS
Packit 4b6dd7
};
Packit 4b6dd7
Packit 4b6dd7
typedef struct _ScrapYTSearch ScrapYTSearch;
Packit 4b6dd7
typedef struct _ScrapPSearch  ScrapPSearch;
Packit 4b6dd7
typedef struct _ScrapPUpload  ScrapPUpload;
Packit 4b6dd7
typedef struct _ScrapPicSearch ScrapPicSearch;
Packit 4b6dd7
Packit 4b6dd7
typedef struct _ScrapData {
Packit 4b6dd7
	GtkWidget		*window;
Packit 4b6dd7
	gint			currentCol;
Packit 4b6dd7
	gint			currentRow[5];
Packit 4b6dd7
	GtkWidget		*box1;
Packit 4b6dd7
	GtkWidget *grid;
Packit 4b6dd7
	GtkWidget		*scrollWindow;
Packit 4b6dd7
	ScrapYTSearch	*yt_search;
Packit 4b6dd7
	ScrapPSearch	*p_search;
Packit 4b6dd7
	ScrapPicSearch *pic_search;
Packit 4b6dd7
	ScrapPUpload	*p_upload;
Packit 4b6dd7
	gint			max_rows;
Packit 4b6dd7
	gchar			*username;
Packit 4b6dd7
	gchar			*password;
Packit 4b6dd7
	GtkListStore	*lStore;
Packit 4b6dd7
Packit 4b6dd7
	GDataYouTubeService *youtube_service;
Packit 4b6dd7
	GDataPicasaWebService *picasaweb_service;
Packit 4b6dd7
} ScrapData;
Packit 4b6dd7
struct _ScrapPUpload {
Packit 4b6dd7
	ScrapData			*main_data;
Packit 4b6dd7
	GDataPicasaWebFile	*file;
Packit 4b6dd7
	GtkWidget			*dialog;
Packit 4b6dd7
	GtkWidget			*name;
Packit 4b6dd7
	GtkWidget			*description;
Packit 4b6dd7
};
Packit 4b6dd7
Packit 4b6dd7
struct _ScrapPicSearch { /* for finding pictures */
Packit 4b6dd7
	const gchar *title;
Packit 4b6dd7
	gchar					*uri;
Packit 4b6dd7
	const gchar *user;
Packit 4b6dd7
	GdkPixbuf				*thumbnail;
Packit 4b6dd7
	ScrapData				*main_data;
Packit 4b6dd7
	ScrapPSearch			*search_data;
Packit 4b6dd7
	GDataQuery				*query;
Packit 4b6dd7
	GDataPicasaWebFile		*file;
Packit 4b6dd7
	GtkListStore			*lStore;
Packit 4b6dd7
	GtkWidget				*tView;
Packit 4b6dd7
};
Packit 4b6dd7
Packit 4b6dd7
struct _ScrapYTSearch { /* youtube search data */
Packit 4b6dd7
	GtkWidget 			*txt_entry;
Packit 4b6dd7
	const gchar *txt;
Packit 4b6dd7
	GtkWidget			*window;
Packit 4b6dd7
	GDataQuery		 	*query;
Packit 4b6dd7
	gchar				*title;
Packit 4b6dd7
	gchar				*uri;
Packit 4b6dd7
	GdkPixbuf			*thumbnail;
Packit 4b6dd7
	GtkWidget 			*box1;
Packit 4b6dd7
	ScrapData			*main_data; /* <- points to a structure containing main vars */
Packit 4b6dd7
	GtkListStore		*lStore;
Packit 4b6dd7
	GtkWidget			*tView;
Packit 4b6dd7
};
Packit 4b6dd7
Packit 4b6dd7
struct _ScrapPSearch { /* for finding albums */
Packit 4b6dd7
	GtkWidget				*window;
Packit 4b6dd7
	GDataQuery				*query;
Packit 4b6dd7
	gchar					*title;
Packit 4b6dd7
	gchar					*uri;
Packit 4b6dd7
	GdkPixbuf				*thumbnail;
Packit 4b6dd7
	GtkWidget				*box1;
Packit 4b6dd7
	ScrapData				*main_data;
Packit 4b6dd7
	GtkWidget				*user_entry;
Packit 4b6dd7
	const gchar *user;
Packit 4b6dd7
	ScrapPicSearch			*pic;
Packit 4b6dd7
};
Packit 4b6dd7
Packit 4b6dd7
typedef struct _ScrapProps {
Packit 4b6dd7
	GtkWidget	*window;
Packit 4b6dd7
	GtkWidget	*box1;
Packit 4b6dd7
	GtkWidget	*username_entry, *password_entry;
Packit 4b6dd7
	ScrapData	*main_data;
Packit 4b6dd7
} ScrapProps;
Packit 4b6dd7
Packit 4b6dd7
Packit 4b6dd7
static void
Packit 4b6dd7
open_in_web_browser (GtkWidget *widget, gchar *uri);
Packit 4b6dd7
Packit 4b6dd7
static void
Packit 4b6dd7
picture_selected (GtkTreeView *tree, GtkTreePath *path, GtkTreeViewColumn *column, ScrapPicSearch *self);
Packit 4b6dd7
Packit 4b6dd7
static void
Packit 4b6dd7
video_selected (GtkTreeView *tree, GtkTreePath *path, GtkTreeViewColumn *column, ScrapYTSearch *self);
Packit 4b6dd7
Packit 4b6dd7
static void
Packit 4b6dd7
p_display_tree (ScrapPicSearch *self);
Packit 4b6dd7
Packit 4b6dd7
static void
Packit 4b6dd7
yt_display_tree (ScrapYTSearch *self);
Packit 4b6dd7
Packit 4b6dd7
GDataMediaThumbnail *
Packit 4b6dd7
choose_best_thumbnail (GList *thumbnails, gint ideal_size);
Packit 4b6dd7
Packit 4b6dd7
static void
Packit 4b6dd7
find_pictures  (GDataEntry *entry, guint entry_key, guint entry_count, ScrapPicSearch *self);
Packit 4b6dd7
Packit 4b6dd7
static void
Packit 4b6dd7
p_query_element (GDataEntry *entry, guint entry_key, guint entry_count, ScrapPSearch *self);
Packit 4b6dd7
Packit 4b6dd7
static void
Packit 4b6dd7
p_text_callback (GtkWidget *widget, ScrapPSearch *self);
Packit 4b6dd7
Packit 4b6dd7
static void
Packit 4b6dd7
yt_query_element (GDataEntry *entry, guint entry_key, guint entry_count, ScrapYTSearch *self);
Packit 4b6dd7
Packit 4b6dd7
static void
Packit 4b6dd7
yt_text_callback (GtkWidget *widget, ScrapYTSearch *self);
Packit 4b6dd7
Packit 4b6dd7
static void
Packit 4b6dd7
start_new_picasa_search (GtkWidget *widget, ScrapData *first);
Packit 4b6dd7
Packit 4b6dd7
static void
Packit 4b6dd7
start_new_youtube_search (GtkWidget *widget, ScrapData *first);
Packit 4b6dd7
Packit 4b6dd7
static void
Packit 4b6dd7
properties_set (GtkWidget *widget, ScrapProps *self);
Packit 4b6dd7
Packit 4b6dd7
static void
Packit 4b6dd7
properties_show (GtkWidget *widget, ScrapData *first);
Packit 4b6dd7
Packit 4b6dd7
static void
Packit 4b6dd7
upload (GtkWidget *widget, ScrapData *first);
Packit 4b6dd7
Packit 4b6dd7
Packit 4b6dd7