示例#1
0
文件: ewl_dvi.c 项目: Limsik/e17
/**
 * @param dvi: the dvi widget to change the displayed dvi
 * @param filename: the path to the new dvi to be displayed by @a dvi
 * @return Returns no value.
 * @brief Change the dvi file displayed by an dvi widget
 *
 * Set the dvi displayed by @a dvi to the one found at the path @a filename. If an
 * edje is used, a minimum size should be specified in the edje or the code.
 */
int
ewl_dvi_file_set(Ewl_Dvi *dvi, const char *filename)
{
        Ewl_Widget *w;
        Ewl_Embed *emb;

        DENTER_FUNCTION(DLEVEL_STABLE);
        DCHECK_PARAM_PTR_RET(dvi, FALSE);
        DCHECK_TYPE(dvi, EWL_DVI_TYPE);

        w = EWL_WIDGET(dvi);
        emb = ewl_embed_widget_find(w);

        if (!filename || (filename[0] == '\0'))
                DRETURN_INT(FALSE, DLEVEL_STABLE);

        if (dvi->filename != filename) {
                IF_FREE(dvi->filename);
        }

        if (dvi->dvi_page) {
                edvi_page_delete(dvi->dvi_page);
                dvi->dvi_page = NULL;
        }

        if (dvi->dvi_document) {
                edvi_document_delete(dvi->dvi_document);
                dvi->dvi_document = NULL;
        }

        dvi->filename = strdup(filename);

        /*
         * Load the new dvi if widget has been realized
         */

        dvi->dvi_document = edvi_document_new(dvi->filename, dvi->dvi_device, dvi->dvi_property);
        if (!dvi->dvi_document)
                DRETURN_INT(FALSE, DLEVEL_STABLE);

        dvi->dvi_page = edvi_page_new(dvi->dvi_document);
        if (!dvi->dvi_page) {
                edvi_document_delete(dvi->dvi_document);
                dvi->dvi_document = NULL;
                DRETURN_INT(FALSE, DLEVEL_STABLE);
        }

        if (REALIZED(w)) {
                ewl_widget_obscure(w);
                ewl_widget_reveal(w);
        }

        DRETURN_INT(TRUE, DLEVEL_STABLE);
}
示例#2
0
文件: ewl_ps.c 项目: Limsik/e17
/**
 * @param ps: the ps widget to change the displayed ps
 * @param filename: the path to the new postscript file to be displayed by @a ps
 * @return 0 on failure, 1 otherwise.
 * @brief Change the postscript file displayed by a ps widget
 *
 * Set the postscript file displayed by @a ps to the one found at the path
 * @a filename.
 */
int
ewl_ps_file_set(Ewl_Ps *ps, const char *filename)
{
        Ewl_Widget *w;

        DENTER_FUNCTION(DLEVEL_STABLE);
        DCHECK_PARAM_PTR_RET(ps, FALSE);
        DCHECK_TYPE(ps, EWL_PS_TYPE);

        w = EWL_WIDGET(ps);

        if (ps->filename != filename) {
                IF_FREE(ps->filename);
        }
        if (!filename || (filename[0] == '\0'))
                DRETURN_INT(FALSE, DLEVEL_STABLE);

        if (ps->ps_page) {
                eps_page_delete(ps->ps_page);
                ps->ps_page = NULL;
        }

        if (ps->ps_document) {
                eps_document_delete(ps->ps_document);
                ps->ps_document = NULL;
        }

        ps->filename = strdup(filename);

        /*
         * Load the new Postscript document
         */

        ps->ps_document = eps_document_new(filename);
        if (!ps->ps_document)
                DRETURN_INT(FALSE, DLEVEL_STABLE);

        ps->ps_page = eps_page_new(ps->ps_document);
        if (!ps->ps_page) {
                eps_document_delete(ps->ps_document);
                ps->ps_document = NULL;
                DRETURN_INT(FALSE, DLEVEL_STABLE);
        }

        if (REALIZED(w)) {
                ewl_widget_unrealize(w);
                ewl_widget_reveal(w);
        }

        DRETURN_INT(TRUE, DLEVEL_STABLE);
}
示例#3
0
/**
 * @param pdf the pdf widget to change the displayed pdf
 * @param filename: the path to the new pdf to be displayed by @a pdf
 * @return 0 on failure, 1 otherwise.
 * @brief Change the pdf file displayed by an pdf widget
 *
 * Set the pdf displayed by @a pdf to the one found at the filename @a filename. If an
 * edje is used, a minimum size should be specified in the edje or the code.
 */
int
ewl_pdf_file_set(Ewl_Pdf *pdf, const char *filename)
{
        Ewl_Widget *w;

        DENTER_FUNCTION(DLEVEL_STABLE);
        DCHECK_PARAM_PTR_RET(pdf, FALSE);
        DCHECK_TYPE(pdf, EWL_PDF_TYPE);

        w = EWL_WIDGET(pdf);

        if (!filename || (filename[0] == '\0'))
                DRETURN_INT(FALSE, DLEVEL_STABLE);

        if (pdf->filename != filename) {
                IF_FREE(pdf->filename);
        }

        if (pdf->pdf_index) {
                epdf_index_delete(pdf->pdf_index);
                pdf->pdf_index = NULL;
        }

        if (pdf->pdf_page) {
                epdf_page_delete(pdf->pdf_page);
                pdf->pdf_page = NULL;
        }

        if (pdf->pdf_document) {
                epdf_document_delete(pdf->pdf_document);
                pdf->pdf_document = NULL;
        }

        pdf->filename = strdup(filename);

        pdf->search.o = NULL;
        pdf->search.text = NULL;
        pdf->search.list = NULL;
        pdf->search.page = -1;
        pdf->search.is_case_sensitive = FALSE;
        pdf->search.is_circular = FALSE;

        /*
         * Load the new PDF document
         */

        pdf->pdf_document = epdf_document_new(pdf->filename);
        if (!pdf->pdf_document)
                DRETURN_INT(FALSE, DLEVEL_STABLE);

        pdf->pdf_page = epdf_page_new(pdf->pdf_document);
        if (!pdf->pdf_page) {
                epdf_document_delete(pdf->pdf_document);
                pdf->pdf_document = NULL;
                DRETURN_INT(FALSE, DLEVEL_STABLE);
        }

        pdf->pdf_index = epdf_index_new(pdf->pdf_document);

        if (REALIZED(w)) {
                ewl_widget_obscure(w);
                ewl_widget_reveal(w);
        }

        DRETURN_INT(TRUE, DLEVEL_STABLE);
}
示例#4
0
static EWL_CALLBACK_DEFN(configure)
{
	Ewler_Widget *ewler_w = user_data;
	Ewler_Widget_Elem *preferred, *current, *elem;
	int x, y, height, width;
	int pref_w, pref_h;

	if( !REALIZED(ewler_w->w) )
		return;

	if( ewler_w->selected ) {
		ewl_widget_layer_set(ewler_w->fg, 1000);
		ewl_widget_layer_set(ewler_w->bg, -1);
		ewl_widget_layer_set(ewler_w->w, 1);
	} else if( ewler_w->parent ) {
		ewl_widget_layer_set(ewler_w->bg, -1);
		ewl_widget_layer_set(ewler_w->w, 1);
	}

	ewl_object_current_geometry_get(EWL_OBJECT(ewler_w->w),
																	&x, &y, &width, &height);
	ewl_object_preferred_inner_size_get(EWL_OBJECT(ewler_w->w), &pref_w, &pref_h);

	current = ecore_hash_get(ewler_w->elems, "current");

	elem = ecore_hash_get(current->info.children, "x");
	if( elem->info.ivalue != x ) {
		if( elem->text && !elem->changed ) {
			int len;

			len = ewl_text_length_get(EWL_TEXT(elem->text));
			ewl_text_cursor_position_set(EWL_TEXT(elem->text), 0);
			ewl_text_color_apply(EWL_TEXT(elem->text), 255, 0, 0, 255, len);
		}

		elem->info.ivalue = x;

		elem->changed = true;
		if( elem->entry )
			ewl_text_text_set(EWL_TEXT(elem->entry), elem_to_s(elem));
	}

	elem = ecore_hash_get(current->info.children, "y");
	if( elem->info.ivalue != y ) {
		if( elem->text && !elem->changed ) {
			int len;

			len = ewl_text_length_get(EWL_TEXT(elem->text));
			ewl_text_cursor_position_set(EWL_TEXT(elem->text), 0);
			ewl_text_color_apply(EWL_TEXT(elem->text), 255, 0, 0, 255, len);
		}

		elem->info.ivalue = y;

		elem->changed = true;
		if( elem->entry )
			ewl_text_text_set(EWL_TEXT(elem->entry), elem_to_s(elem));
	}

	elem = ecore_hash_get(current->info.children, "w");
	if( elem->info.ivalue != width ) {
		if( elem->text && !elem->changed ) {
			int len;

			len = ewl_text_length_get(EWL_TEXT(elem->text));
			ewl_text_cursor_position_set(EWL_TEXT(elem->text), 0);
			ewl_text_color_apply(EWL_TEXT(elem->text), 255, 0, 0, 255, len);
		}

		elem->info.ivalue = width;

		elem->changed = true;
		if( elem->entry )
			ewl_text_text_set(EWL_TEXT(elem->entry), elem_to_s(elem));
	}

	elem->info.ivalue = width;

	elem = ecore_hash_get(current->info.children, "h");
	if( elem->info.ivalue != height ) {
		if( elem->text && !elem->changed ) {
			int len;

			len = ewl_text_length_get(EWL_TEXT(elem->text));
			ewl_text_cursor_position_set(EWL_TEXT(elem->text), 0);
			ewl_text_color_apply(EWL_TEXT(elem->text), 255, 0, 0, 255, len);
		}

		elem->info.ivalue = height;

		elem->changed = true;
		if( elem->entry )
			ewl_text_text_set(EWL_TEXT(elem->entry), elem_to_s(elem));
	}

	preferred = ecore_hash_get(ewler_w->elems, "preferred");

	elem = ecore_hash_get(preferred->info.children, "w");
	if( elem->info.ivalue != pref_w ) {
		if( elem->text && !elem->changed ) {
			int len;

			len = ewl_text_length_get(EWL_TEXT(elem->text));
			ewl_text_cursor_position_set(EWL_TEXT(elem->text), 0);
			ewl_text_color_apply(EWL_TEXT(elem->text), 255, 0, 0, 255, len);
		}

		elem->info.ivalue = pref_w;

		elem->changed = true;
		if( elem->entry )
			ewl_text_text_set(EWL_TEXT(elem->entry), elem_to_s(elem));
	}

	elem = ecore_hash_get(preferred->info.children, "h");
	if( elem->info.ivalue != pref_h ) {
		if( elem->text && !elem->changed ) {
			int len;

			len = ewl_text_length_get(EWL_TEXT(elem->text));
			ewl_text_cursor_position_set(EWL_TEXT(elem->text), 0);
			ewl_text_color_apply(EWL_TEXT(elem->text), 255, 0, 0, 255, len);
		}

		elem->info.ivalue = pref_h;

		elem->changed = true;
		if( elem->entry )
			ewl_text_text_set(EWL_TEXT(elem->entry), elem_to_s(elem));
	}

	if( !ewler_w->configured ) {
		ewl_object_geometry_request(EWL_OBJECT(ewler_w->fg), x, y, width, height);
		ewl_object_geometry_request(EWL_OBJECT(ewler_w->bg), x, y, width, height);
	}

	ewler_w->configured = false;

	elem->info.ivalue = height;
}