Beispiel #1
0
static void progress_cb (GtkMozEmbed *embed, gint cur, gint max,  WebBrowserObject *browser)
{
    if (max < 1) {
        gtk_progress_set_activity_mode(GTK_PROGRESS(browser->progressBar), FALSE);
        browser->loadPercent = 0;
        browser->bytesLoaded = cur;
        browser->maxBytesLoaded = 0;
        browser->SetStatus(0);
    } else {
        browser->bytesLoaded = cur;
        browser->maxBytesLoaded = max;
        if (cur > max) {
            browser->loadPercent = 100;
        } else {
            browser->loadPercent = (cur * 100) / max;
        }
        char msg[256];
        if (browser->loadPercent) {
            snprintf(msg, sizeof(msg), "%d%% complete, %d bytes of %d loaded", browser->loadPercent, browser->bytesLoaded, browser->maxBytesLoaded);
            browser->SetStatus(msg);
        } else
        if (browser->bytesLoaded) {
            snprintf(msg, sizeof(msg), "%d bytes loaded", browser->bytesLoaded);
            browser->SetStatus(msg);
        }
        gtk_progress_set_percentage(GTK_PROGRESS(browser->progressBar), browser->loadPercent / 100.0);
    }
}
Beispiel #2
0
void progress_change_cb   (GtkMozEmbed *embed, gint cur, gint max,
                           TestGtkBrowser *browser)
{
    g_print("progress_change_cb cur %d max %d\n", cur, max);

    // avoid those pesky divide by zero errors
    if (max < 1)
    {
        gtk_progress_set_activity_mode(GTK_PROGRESS(browser->progressBar), FALSE);
        browser->loadPercent = 0;
        browser->bytesLoaded = cur;
        browser->maxBytesLoaded = 0;
        update_status_bar_text(browser);
    }
    else
    {
        browser->bytesLoaded = cur;
        browser->maxBytesLoaded = max;
        if (cur > max)
            browser->loadPercent = 100;
        else
            browser->loadPercent = (cur * 100) / max;
        update_status_bar_text(browser);
        gtk_progress_set_percentage(GTK_PROGRESS(browser->progressBar), browser->loadPercent / 100.0);
    }

}
static int gtkProgressBarMapMethod(Ihandle* ih)
{
  ih->handle = gtk_progress_bar_new();
  if (!ih->handle)
    return IUP_ERROR;

  /* add to the parent, all GTK controls must call this. */
  iupgtkAddToParent(ih);

  gtk_widget_realize(ih->handle);

  if (iupStrEqualNoCase(iupAttribGetStr(ih, "ORIENTATION"), "VERTICAL"))
  {
#if GTK_CHECK_VERSION(3, 0, 0)
    gtk_orientable_set_orientation(GTK_ORIENTABLE(ih->handle), GTK_ORIENTATION_VERTICAL);
    gtk_progress_bar_set_inverted(GTK_PROGRESS_BAR(ih->handle), TRUE);
#else
    gtk_progress_bar_set_orientation(GTK_PROGRESS_BAR(ih->handle), GTK_PROGRESS_BOTTOM_TO_TOP);
#endif

    if (ih->userheight < ih->userwidth)
    {
      int tmp = ih->userheight;
      ih->userheight = ih->userwidth;
      ih->userwidth = tmp;
    }
  }
  else
  {
#if GTK_CHECK_VERSION(3, 0, 0)
    gtk_orientable_set_orientation(GTK_ORIENTABLE(ih->handle), GTK_ORIENTATION_HORIZONTAL);
#else
    gtk_progress_bar_set_orientation((GtkProgressBar*)ih->handle, GTK_PROGRESS_LEFT_TO_RIGHT);
#endif
  }

  if (iupAttribGetBoolean(ih, "MARQUEE"))
  {
#if GTK_CHECK_VERSION(3, 0, 0)
    gtk_progress_bar_pulse(GTK_PROGRESS_BAR(ih->handle));
#else
    gtk_progress_set_activity_mode((GtkProgress*)ih->handle, TRUE);
#endif

    ih->data->marquee = 1;

    ih->data->timer = IupTimer();
    IupSetCallback(ih->data->timer, "ACTION_CB", (Icallback)gtkProgressBarTimeCb);
    IupSetAttribute(ih->data->timer, "TIME", "100");
    iupAttribSet(ih->data->timer, "_IUP_PROGRESSBAR", (char*)ih);

    gtk_progress_bar_set_pulse_step((GtkProgressBar*)ih->handle, 0.02);
  }
  else
    ih->data->marquee = 0;

  return IUP_NOERROR;
}
Beispiel #4
0
/* A GtkProgress can be in one of two different modes: percentage mode (the default)
 * and activity mode. In activity mode, the progress is simply indicated as activity
 * rather than as a percentage complete. */
int
clip_GTK_PROGRESSSETACTIVITYMODE(ClipMachine * cm)
{
	C_widget      *cprg = _fetch_cw_arg(cm);
	guint activity_mode = _clip_parl(cm,2);
        CHECKCWID(cprg,GTK_IS_PROGRESS);
	CHECKOPT(2,LOGICAL_t);
        if (_clip_parinfo(cm,2)==UNDEF_t) activity_mode = TRUE;
        gtk_progress_set_activity_mode(GTK_PROGRESS(cprg->widget), activity_mode);
	return 0;
err:
	return 1;
}
Beispiel #5
0
void progress_bar_reset (GtkWidget *pbar) {
	struct pbarinfo *info;

	info = gtk_object_get_user_data (GTK_OBJECT (pbar));

	if (info->activity_mode) {
		gtk_timeout_remove (info->timeout_id);
		info->activity_mode = FALSE;
	}

	gtk_progress_set_activity_mode (GTK_PROGRESS (pbar), FALSE);
	gtk_progress_set_show_text (GTK_PROGRESS (pbar), FALSE);
	gtk_progress_set_percentage (GTK_PROGRESS (pbar), 0.0);
}
Beispiel #6
0
void progress_bar_start (GtkWidget *pbar, int activity_mode) {
	struct pbarinfo *info;

	progress_bar_reset (pbar);

	if (activity_mode) {
		info = gtk_object_get_user_data (GTK_OBJECT (pbar));
		info->activity_mode = TRUE;
		info->timeout_id = gtk_timeout_add (100, (GtkFunction) progress_bar_timeout_callback, pbar);
		gtk_progress_set_activity_mode (GTK_PROGRESS (pbar), TRUE);
	}
	else {
		gtk_progress_set_show_text (GTK_PROGRESS (pbar), TRUE);
	}
}
Beispiel #7
0
static GtkWidget *
progressbar_new(GladeXML *xml, GladeWidgetInfo *info)
{
	GtkWidget *ret = gtk_progress_bar_new();
	GList *tmp;
	gfloat value = 0, lower = 0, upper = 100;
	gfloat xalign = 0.5, yalign = 0.5;

	for (tmp = info->attributes; tmp; tmp = tmp->next) {
		GladeAttribute *attr = tmp->data;

		if (!strcmp(attr->name, "value"))
			value = g_strtod(attr->value, NULL);
		else if (!strcmp(attr->name, "lower"))
			lower = g_strtod(attr->value, NULL);
		else if (!strcmp(attr->name, "upper"))
			upper = g_strtod(attr->value, NULL);
		else if (!strcmp(attr->name, "activity_mode"))
			gtk_progress_set_activity_mode(GTK_PROGRESS(ret),
						       attr->value[0]=='T');
		else if (!strcmp(attr->name, "bar_style"))
			gtk_progress_bar_set_bar_style(GTK_PROGRESS_BAR(ret),
			    glade_enum_from_string(GTK_TYPE_PROGRESS_BAR_STYLE,
						   attr->value));
		else if (!strcmp(attr->name, "orientation"))
			gtk_progress_bar_set_orientation(GTK_PROGRESS_BAR(ret),
			    glade_enum_from_string(
			      GTK_TYPE_PROGRESS_BAR_ORIENTATION, attr->value));
		else if (!strcmp(attr->name, "show_text"))
			gtk_progress_set_show_text(GTK_PROGRESS(ret),
						   attr->value[0] == 'T');
		else if (!strcmp(attr->name, "text_xalign"))
			xalign = g_strtod(attr->value, NULL);
		else if (!strcmp(attr->name, "text_yalign"))
			yalign = g_strtod(attr->value, NULL);
		else if (!strcmp(attr->name, "format"))
			gtk_progress_set_format_string(GTK_PROGRESS(ret),
						       attr->value);
	}
	gtk_progress_configure(GTK_PROGRESS(ret), value, lower, upper);
	gtk_progress_set_text_alignment(GTK_PROGRESS(ret), xalign, yalign);
	return ret;
}