Пример #1
0
int main(int argc, char *argv[])
{
	GdkScreen *screen;
	gint width, height;
	gint index;
	gint point_1, point_2;
	gint mm_height, mm_width;
	GdkRectangle rect0, rect1;
	GdkWindow * wind;

	gtk_init(&argc, &argv);
	g_type_init();
	screen = gdk_screen_get_default();
	gint number = gdk_screen_get_n_monitors(screen);
	
	width = gdk_screen_get_width(screen);
	height = gdk_screen_get_height(screen);

	if(number > 1 )
	{
		index = gdk_screen_get_primary_monitor(screen);
		
		point_1 = gdk_screen_get_monitor_at_point(screen , 20, 20);
		point_2 = gdk_screen_get_monitor_at_point(screen , 2700, 20);

		printf("number is %d\n width %d\t height %d\n primary monitor index %d\n", number, width, height, index);

		printf("point1 is in monitor %d\n", point_1);
		printf("point2 is in monitor %d\n", point_2);
/*
		mm_height = gdk_screen_get_monitor_height_mm (screen, 0);
		printf("monitor0 height  %d\n", mm_height);
		mm_height = gdk_screen_get_monitor_height_mm (screen, 1);
		printf("monitor1 height  %d\n", mm_height);
		
		mm_width = gdk_screen_get_monitor_width_mm (screen, 0);
		printf("monitor0 width  %d\n", mm_width);
		mm_width = gdk_screen_get_monitor_width_mm (screen, 1);
		printf("monitor1 width  %d\n", mm_width);
*/
		gdk_screen_get_monitor_geometry(screen, 0, &rect0);
		printf("monitor0 rect.x %d rect.y %d\n rect.width %d rect.weight %d\n", rect0.x, rect0.y, rect0.width, rect0.height);
		
		gdk_screen_get_monitor_geometry(screen, 1, &rect1);
		printf("monitor1 rect.x %d rect.y %d\n rect.width %d rect.weight %d\n", rect1.x, rect1.y, rect1.width, rect1.height);

		wind = gdk_screen_get_active_window(screen);
		gint monitor = gdk_screen_get_monitor_at_window(screen, wind);
		printf("active window at monitor   %d\n", monitor);

	}
    else{
		printf("sorry, only one monitor! \n");
    }
}
static GdkWindow *
screenshot_find_active_window (void)
{
  GdkWindow *window;
  GdkScreen *default_screen;

  default_screen = gdk_screen_get_default ();
  window = gdk_screen_get_active_window (default_screen);

  return window;
}
Пример #3
0
void onRowActivated(GtkTreeView* treeview, GtkTreePath* path,GtkTreeViewColumn* col,gpointer userdata)
{
	GtkTreeModel		*model;
	GtkTreeIter			iter;
	gchar				*name;
	char				*command;
	GdkModifierType		mask;
	const char			*app;

#ifdef _USEGTK3_
	GdkDeviceManager	*device_manager=gdk_display_get_device_manager(gdk_display_get_default());
	GdkDevice			*device=gdk_device_manager_get_client_pointer(device_manager);
	GdkWindow			*window;

	window=gdk_screen_get_active_window (gdk_screen_get_default());
	gdk_window_get_device_position(window,device,NULL,NULL,&mask);
#else
	gdk_window_get_pointer(NULL,NULL,NULL,&mask);
#endif

	model=gtk_tree_view_get_model(treeview);

	if(gtk_tree_model_get_iter(model,&iter,path))
		{
			gtk_tree_model_get(model,&iter,COLUMN_PATHNAME,&name,-1);
			app=getApp(name);
			asprintf(&command,"%s '%s'",app,name);
			
			if (GDK_CONTROL_MASK & mask )
				runCommand(command,NULL,false,TOOL_ASYNC,true,NULL);
			else
				runCommand(command,NULL,false,TOOL_ASYNC,false,NULL);
				
			debugFree(&command);
			debugFree(&name);
		}
}