import {
addListener,
importDomImage,
library as L,
makeBlock,
makePattern,
makeRender,
} from '../source/scrawl.js'
import { reportSpeed, killArtefactAndAnchor, killStyle } from './utilities.js';
import {
addListener,
importDomImage,
library as L,
makeBlock,
makePattern,
makeRender,
} from '../source/scrawl.js'
import { reportSpeed, killArtefactAndAnchor, killStyle } from './utilities.js';
We load GA code in the normal way through markup in the dom-006.html file (lines 11-21), and get a handle on the ga object here
const ga = window[window['GoogleAnalyticsObject'] || 'ga'];
let myTracker;
Create a new tracker to handle tween and ticker action/progress, and set some attributes on it. @ts-expect-error
ga('create', 'UA-000000-0', 'auto', 'demoCanvasTracker');
We can then incorporate the tracker’s functionality in our various hook functions defined further down in this script @ts-expect-error
ga(function() {
const ga = window[window['GoogleAnalyticsObject'] || 'ga'];
@ts-expect-error
myTracker = ga.getByName('demoCanvasTracker');
myTracker.set('transport', 'beacon');
myTracker.set('campaignKeyword', 'Scrawl-canvas demo');
Uncomment the next line to suppress tracker packets (so they don’t show up in the console) myTracker.set(‘sendHitTask’, null);
});
const canvas = L.artefact.mycanvas;
Namespacing boilerplate
const namespace = 'demo';
const name = (n) => `${namespace}-${n}`;
Get images from DOM
importDomImage('.mypatterns');
Create Pattern styles using imported images
makePattern({
name: name('brick-pattern'),
asset: 'brick',
}).clone({
name: name('leaves-pattern'),
asset: 'leaves',
});
Create Pattern styles dynamically
makePattern({
name: name('water-pattern'),
imageSource: 'img/water.png',
}).clone({
name: name('marble-pattern'),
imageSource: 'img/marble.png',
});
Create a canvas-based Cell pattern
canvas.buildCell({
name: name('cell-pattern'),
width: 50,
height: 50,
backgroundColor: 'lightblue',
shown: false,
useAsPattern: true,
willReadFrequently: false,
});
canvas.base.set({
compileOrder: 1,
});
Create a Block entity to display in the new Cell pattern
makeBlock({
name: name('cell-pattern-block'),
group: name('cell-pattern'),
width: 40,
height: 40,
startX: 'center',
startY: 'center',
handleX: 'center',
handleY: 'center',
method: 'fill',
fillStyle: name('water-pattern'),
delta: {
roll: -0.3
},
});
Main canvas display - create Block entitys which will use the patterns defined above
makeBlock({
name: name('water-in-leaves'),
group: canvas.get('baseGroup'),
width: '40%',
height: '40%',
startX: '25%',
startY: '25%',
handleX: 'center',
handleY: 'center',
lineWidth: 20,
lineJoin: 'round',
method: 'fillThenDraw',
fillStyle: name('cell-pattern'),
strokeStyle: name('leaves-pattern'),
shadowOffsetX: 5,
shadowOffsetY: 5,
shadowBlur: 3,
shadowColor: 'black',
Include an anchor (href) link which can be tied to user interaction (in this case, mouse clicks on the canvas element) through events defined further down in this script.
ALWAYS include a description! We will be using the anchor’s description string later as part of our asistive technology solution for this demo.
anchor: {
name: 'wikipedia-water-link',
href: 'https://en.wikipedia.org/wiki/Water',
description: 'Link to the Wikipedia article on water (opens in new tab)',
The clickAction attribute captures both Scrawl-canvas trigger clicks and also non-mouse ‘clicks’ on the anchor element hidden at the top of the web page, for example using the keyboard (tab, return) or other assistive technology.
The function returns a string which Scrawl-canvas will add to the anchor’s ‘onclick’ attribute when it creates the anchor element dynamically and adds it to the DOM.
clickAction: function () {
return `ga('demoCanvasTracker.send', 'event', 'Outbound link', 'click', '${this.href}')`;
},
Include focus and blur actions, which will trigger the onEnter and onLeave functions (below) for visitors using non-mouse/touch navigation (for example: keyboard tabbing)
focusAction: true,
blurAction: true,
},
Accessibility functionality to be used by event functions defined below in response to user activity - this time moving the mouse cursor across the <canvas> element. Note that ‘this’ refers to the entity object, meaning the functions can be safely cloned into other entitys.
this
). onEnter: function () {
Update the block entity’s visual display @ts-expect-error
this.set({
lineWidth: 30,
});
This is where we update the accessibility information tied to the canvas element. We’re using the anchor attribute object’s description value to supply details of what actions will happen when the user clicks on the canvas while the mouse is over the block entity.
canvas.set({
@ts-expect-error
title: `${this.get('name')} tile`,
@ts-expect-error
label: this.get('anchorDescription'),
});
Track the action in Google Analytics @ts-expect-error
myTracker.send('event', 'Canvas Entity', 'hover start', `${this.name} ${this.type}`);
},
onLeave: function () {
Reset the block entity’s visual display @ts-expect-error
this.set({
lineWidth: 20,
});
Reset the accessibility information tied to the canvas element.
canvas.set({
title: '',
label: `${canvas.name} canvas element`,
});
Track the action in Google Analytics @ts-expect-error
myTracker.send('event', 'Canvas Entity', 'hover end', `${this.name} ${this.type}`);
},
Used by the Scrawl-canvas click event, below. This hit report will only be generated from user interaction on the canvas element, thus will supply different numbers to the anchor’s clickAction function above - a useful way to help calculate the volume of users bypassing the canvas and opening the Wikipedia page using the keyboard or assistive technology
onUp: function () {
Track the action in Google Analytics @ts-expect-error
myTracker.send('event', 'Canvas Entity Link', 'click', `${this.name} ${this.type} ${this.get('anchorHref')}`);
Trigger the click event on the anchor element we added to the DOM @ts-expect-error
this.clickAnchor();
},
}).clone({
name: name('leaves-in-brick'),
startX: '75%',
fillStyle: name('leaves-pattern'),
strokeStyle: name('brick-pattern'),
anchor: {
name: 'wikipedia-leaf-link',
href: 'https://en.wikipedia.org/wiki/Leaf',
description: 'Link to the Wikipedia article on leaves (opens in new tab)',
},
}).clone({
name: name('brick-in-marble'),
startY: '75%',
fillStyle: name('brick-pattern'),
strokeStyle: name('marble-pattern'),
anchor: {
name: 'wikipedia-brick-link',
href: 'https://en.wikipedia.org/wiki/Brick',
description: 'Link to the Wikipedia article on bricks (opens in new tab)',
},
}).clone({
name: name('marble-in-water'),
startX: '25%',
fillStyle: name('marble-pattern'),
strokeStyle: name('water-pattern'),
anchor: {
name: 'wikipedia-marble-link',
href: 'https://en.wikipedia.org/wiki/Marble',
description: 'Link to the Wikipedia article on marble (opens in new tab)',
},
});
Demonstrate zoned actions on a canvas element as a result of user interaction
In this case, moving the mouse cursor over a block entity will increase its line width, as specified in the onEnter and onLeave functions in the block factories above.
Additionally, it will update the <canvas> element’s title attribute (for tool tips) and its ARIA label value (for accessibility)
The cascadeEventAction function returns an Array of name Strings for the entitys at the current mouse cursor coordinates
let interactionResults = '';
const interactions = function () {
if (canvas.here.active) interactionResults = canvas.cascadeEventAction('move');
else interactionResults = '';
};
addListener('move', interactions, canvas.domElement);
To capture other user interaction with the <a> DOM elements which, while being visually hidden, are still accessible - for instance when a user keyboard-tabs through the web page
In this case, clicking on one of the tiles will open a related Wikipedia page in a new browser tab - as defined in the onUp function in the block factories above
const mylinks = function () {
if (canvas.here.active) canvas.cascadeEventAction('up');
};
addListener('up', mylinks, canvas.domElement);
Function to display frames-per-second data, and other information relevant to the demo
const report = reportSpeed('#reportmessage', function () {
return `Hits: ${interactionResults}`;
});
Create the Display cycle animation
makeRender({
name: name('animation'),
target: canvas,
afterShow: report,
});
console.log(L);
console.log('Performing tests ...');
We use the canvas and myTracker variables in our blocks’ onEnter, onLeave and onUp functions. While this works fine for the blocks created in the scope of this module file’s code, it will fail when we kill and resurrect a block - in the resurrected block the canvas and myTracker variables will be ‘undefined’. So we need to reset the block’s ‘on…’ functions (in this module file’s code) after the block has resurrected
killArtefactAndAnchor(canvas, name('brick-in-marble'), 'wikipedia-brick-link', 2000, () => {
L.artefact[name('brick-in-marble')].set({
onEnter: function () {
this.set({ lineWidth: 30 });
canvas.set({
title: `${this.name} tile`,
label: this.get('anchorDescription'),
});
myTracker.send('event', 'Canvas Entity', 'hover start', `${this.name} ${this.type}`);
},
onLeave: function () {
this.set({ lineWidth: 20 });
canvas.set({
title: '',
label: `${canvas.name} canvas element`,
});
myTracker.send('event', 'Canvas Entity', 'hover end', `${this.name} ${this.type}`);
},
onUp: function () {
myTracker.send('event', 'Canvas Entity Link', 'click', `${this.name} ${this.type} ${this.anchor.href}`);
this.clickAnchor();
},
});
});
killStyle(canvas, name('marble-pattern'), 3000, () => {
Reset entitys, whose fill/strokeStyles will have been set to default values when the Pattern died
L.entity[name('brick-in-marble')].set({
strokeStyle: name('marble-pattern'),
});
L.entity[name('marble-in-water')].set({
fillStyle: name('marble-pattern'),
});
});


Please, specify your account(s) below. If you also specify access tokens, private contributions will be counted along with the public ones.
| GitHub username: | |
|---|---|
| Access token (optional): | |
| API URL (optional): |
Leave it blank for GitHub.com. For a standalone GitHub, provide the API URL (e.g. 'api.github.com'). |
| GitLab username: | |
| Access token: |
For GitLab, token is mandatory. |
| URL (optional): |
Leave it blank for GitLab.com. For a standalone GitLab, provide it's normal URL (e.g. 'gitlab.com'). |
| Bitbucket username: | |
| App password: |
App password is mandatory. Do not use your account password. Create a separate app password with account/read permissions instead. |
| URL (optional): |
Leave it blank for Bitbucket.org. For a standalone Bitbucket server, provide it's API URL (e.g. 'api.bitbucket.com'). |
You can specify colors for contribution count ranges below. Each color is used for its range of contributions. The first color starts with 0 contributions and ends with the first number (so, by default, the first color is only shown for 0 contributions). The last color is used for any contributions count bigger than the last number.
You can specify thickness (in pixels) or the borders here. 0 means the border is not shown.
| Border | Left | Top | Bottom | Right |
|---|---|---|---|---|
| Thickness |


Flexbox allows us to reorder columns regardless of the HTML order. Reordering has sm md lg breakpoints matching the grid breakpoints. Example: first or first@md
sm md lg
first
first@md


:: com :: sun :: star :: beans ::
|
| interface XFastPropertySet |
|
- Description
- provides a fast way of accessing and changing property values.
This interface is an extension to the XPropertySet
interface. The get and set methods use handles to access the
property values instead of character strings.
- Developers Guide
- ProUNO - Properties
|
| Methods' Details |
setFastPropertyValue
- Description
- sets the value to the property with the specified name.
- Parameter nHandle
- contains the implementation handle of the
implementation for the property.
- Parameter aValue
- contains the new value of the property.
- Throws
- UnknownPropertyException
if the property does not exist.
- Throws
- PropertyVetoException
if a vetoable listener does not approve the change of
a property value.
- Throws
- IllegalArgumentException
if the new value cannot be converted to the type of the
underlying property by an identity or widening conversion.
- Throws
- stardiv::uno::lang::WrappedTargetException
if the implementation has an internal reason for the exception.
In this case the original exception is wrapped into this
::com::sun::star::lang::WrappedTargetException.
|
|
getFastPropertyValue
- Returns
- the value of the property with the name PropertyName.
- Parameter nHandle
- contains the implementation handle of the implementation for the property.
- Throws
- UnknownPropertyException
if the property does not exist.
- Throws
- com::sun::star::lang::WrappedTargetException
if the implementation has an internal reason for the exception.
In this case the original exception is wrapped into that
::com::sun::star::lang::WrappedTargetException.
|
|
Top of Page
Copyright © 2013, The Apache Software Foundation, Licensed under the Apache License, Version 2.0. Apache, the Apache feather logo, Apache OpenOffice and OpenOffice.org are trademarks of The Apache Software Foundation. Other names may be trademarks of their respective owners.


Never contact me ever. Okay? If you do, I will use my wizardry to cast some juju on you. But if you must contact me, use the form below.


{% extends "base.html" %} {% block page_title %}DAF - {{ article.title }}{% endblock %} {% block content %}
Created {{ article.created }} by {{ article.author }} Comments


Change navigation
HLServer 3.0
Stats
Now
Dayly
Monthly
Settings
Panel Password
Publish Password
Stream Locking
Log out
Stats corresponding to:
(
)
Hours consumed:
9002
GBs consumed:
5716
Audience in Players
Hours of Playback
Average Time of Playback (hours)
Traffic in Gigabytes
Max Audience in Players
Peak Times


No one believes Prince Andrew's explanation about his relationship with Jeffrey Epstein
by Mark FrauenfelderIn a BBC interview, noted playboy Prince Andrew said he regrets visiting the home of of his friend Jeffrey Epstein after Epstein had been convicted for sex crimes against minors. But the reason he went to Epstein's house for four days, explains the Prince, is because he wanted to end their friendship in person. Everyone thinks this excuse, and almost everything else he says in his well-rehearsed answers, is a load of codswallop.


- ext/openssl/lib/net/protocols.rb (SSLIO#ssl_connect)
-
warning for skipping server verification.
Tue Sep 2 23:36:57 2003 Yukihiro Matsumoto<EMAIL_ADDRESS>↑
- eval.c (proc_invoke)
-
should retrieve retval when pcall is true.
Tue Sep 2 14:09:20 2003 Yukihiro Matsumoto<EMAIL_ADDRESS>↑
- ext/socket/extconf.rb
-
check s6_addr8 in in6_addr (Tru64 UNIX). the patch is submitted by nmu<EMAIL_ADDRESS>- ext/socket/getaddrinfo.c (getaddrinfo)
-
should use in6_addr8 on some platforms.
- ext/socket/getnameinfo.c (getnameinfo)
-
ditto.
Tue Sep 2 14:02:19 2003 Hidetoshi NAGAI<EMAIL_ADDRESS>↑
- ext/tcltklib/tcltklib.c (ip_invoke)
-
fixed bug on passing a exception
- ext/tk/lib/{tk.rb, tkcanvas.rb, tkfont.rb, tktext.rb}
-
bug fix and improvement of font control
Tue Sep 2 09:51:36 2003 Nobuyoshi Nakada<EMAIL_ADDRESS>↑
- eval.c (rb_eval)
-
should not handle exceptions within rescue argument. [ruby-talk:80804]
Tue Sep 2 00:44:37 2003 Nobuyoshi Nakada<EMAIL_ADDRESS>↑
- re.c (rb_memsearch)
-
fix overrun. [ruby-talk:80759]
Tue Sep 2 00:41:27 2003 Nobuyoshi Nakada<EMAIL_ADDRESS>↑
- ext/iconv/iconv.c (map_charset)
-
use lower case keys.
- ext/iconv/iconv.c (iconv_fail)
-
just yield error and return the result if a block is given.
- ext/iconv/iconv.c (iconv_convert)
-
yield error and append the result if a block is given.
- ext/iconv/charset_alias.rb (charset_alias)
-
optional third argument.
- ext/iconv/charset_alias.rb (charset_alias)
-
use CP932 instead of SHIFT_JIS on cygwin.
2003-09-01¶ ↑
Mon Sep 1 18:34:25 2003 Nobuyoshi Nakada<EMAIL_ADDRESS>↑
- eval.c (rb_eval)
-
make tail recursion in ELSE clause of RESCUE a jump.
Mon Sep 1 18:00:02 2003 Yukihiro Matsumoto<EMAIL_ADDRESS>↑
- parse.y (aref_args)
-
forgot to call NEW_SPLAT(). reported by Dave Butcher.
- eval.c (Init_Thread)
-
protect thgroup_default. suggested by Guy Decoux in [ruby-talk:80623]
Mon Sep 1 16:59:10 2003 Nobuyoshi Nakada<EMAIL_ADDRESS>↑
- eval.c (rb_thread_switch)
-
add RESTORE_EXIT; exit by another thread termination.
- eval.c (rb_thread_start_0)
-
should not error_print() within terminated thread, because $stderr used by it might be overriden now. [ruby-dev:21280]
2003-08-31¶ ↑
Sun Aug 31 22:46:55 2003 WATANABE Hirofumi<EMAIL_ADDRESS>↑
- eval.c (TAG_DST())
-
take no argument.
- process.c (p_gid_sw_ensure)
-
return VALUE.
Sun Aug 31 22:27:10 2003 Hidetoshi NAGAI<EMAIL_ADDRESS>↑
- process.c (p_gid_sw_ensure)
-
lack of function type
Sun Aug 31 12:25:06 2003 Nobuyoshi Nakada<EMAIL_ADDRESS>↑
- lib/optparse.rb
-
–version takes an optional argument; “all” or a list of package names.
Sun Aug 31 10:17:02 2003 Tadayoshi Funaba<EMAIL_ADDRESS>↑
- lib/date/format.rb
-
yyyy/mm is not an acceptable format.
- lib/time.rb
-
follow above.
2003-08-30¶ ↑
Sat Aug 30 14:25:43 2003 Yukihiro Matsumoto<EMAIL_ADDRESS>↑
- eval.c (rb_iter_break)
-
should not call TAG_JUMP directly.
Sat Aug 30 03:58:21 2003 Yukihiro Matsumoto<EMAIL_ADDRESS>↑
- eval.c (struct BLOCK)
-
remove BLOCKTAG, use scope instead.
- eval.c (POP_TAG)
-
no longer propagate retval. retval is now set directly by localjump_destination().
- eval.c (localjump_destination)
-
new function to cast return/break local jump.
- eval.c (rb_yield_0)
-
stop TAG_RETURN/TAG_BREAK escaping.
2003-08-29¶ ↑
Fri Aug 29 22:35:00 2003 Shigeo Kobayashi<EMAIL_ADDRESS>↑
- bigdecimal.c *.html
-
The 2nd arg. for add,sub,mult, and div is 0, then result will be the same as +,-,*,/ respectively.
Fri Aug 29 17:30:15 2003 Hidetoshi NAGAI<EMAIL_ADDRESS>↑
- process.c
-
bug fix
- process.c
-
add rb_secure(2) to methods of Process::{UID,GID,Sys}
- process.c
-
deny handling IDs during evaluating the block given to the Process::{UID,GID}.switch method
- ext/tcltklib/tcltklib.c
-
some methods have no effect if on slave-IP
- ext/tcltklib/tcltklib.c
-
can create a interpreter without Tk
- ext/tcltklib/tcltklib.c
-
bug fix on handling exceptions
- ext/tcltklib/MANUAL.euc
-
modify
- ext/tk/lib/tk.rb
-
freeze some core modules
- ext/tk/lib/multi-tk.rb
-
more secure
- ext/tk/lib/tk.rb
-
TkVariable.new(array) –> treat the array as the Tk's list
- ext/tk/lib/tk.rb
-
improve accessibility of TkVariable object
- ext/tk/lib/tk.rb, ext/tk/lib/tkfont.rb, ext/tk/lib/tkcanvas.rb, ext/tk/lib/tktext.rb
-
fix bug of font handling
- ext/tk/lib/tkfont.rb
-
TkFont.new() accepts compound fonts
2003-08-28¶ ↑
Thu Aug 28 22:07:12 2003 Yukihiro Matsumoto<EMAIL_ADDRESS>↑
- variable.c (rb_autoload_load)
-
call const_missing if autoloading constant is not defined to allow hook.
- eval.c (rb_eval)
-
use rb_const_get_from() instead of rb_const_get_at().
- eval.c (is_defined)
-
forgot to check NODE_COLON3.
Thu Aug 28 17:30:24 2003 Yukihiro Matsumoto<EMAIL_ADDRESS>↑
- variable.c (rb_const_get_0)
-
should check constants defined in included modules, if klass is Object. [ruby-talk:79302]
- numeric.c (check_uint)
-
check should be done using UINT_MAX, not INT_MAX. this fix is submitted by Lyle Johnson<EMAIL_ADDRESS>in [ruby-core:01486]
Thu Aug 28 05:02:52 2003 Yukihiro Matsumoto<EMAIL_ADDRESS>↑
- parse.y (singleton)
-
typo fixed (ruby-bugs-ja:PR#562)
Thu Aug 28 02:37:45 2003 Yukihiro Matsumoto<EMAIL_ADDRESS>↑
- eval.c (rb_eval)
-
*a = [1,2] now assigns [[1,2]] to a. consistent with *a = [1], which set [[1]] to a.
- node.h
-
merge NODE_RESTARY to NODE_SPLAT.
- parse.y
-
rules simplified a bit by removing NODE_RESTARY.
- sample/test.rb
-
updated for new assignment behavior.
2003-08-27¶ ↑
Wed Aug 27 22:33:24 2003 Nobuyoshi Nakada<EMAIL_ADDRESS>↑
- error.c (rb_bug)
-
should not use other methods; this function is not for ordinary use. [ruby-dev:21259]
Wed Aug 27 15:07:57 2003 Minero Aoki<EMAIL_ADDRESS>↑
- lib/net/smtp.rb (check_response)
-
AUTH CRAM-MD5 returns 334 response. [ruby-list:38279]
Wed Aug 27 05:10:15 2003 NAKAMURA Usaku<EMAIL_ADDRESS>↑
- win32/win32.c (map_errno)
-
support winsock error.
- win32/win32.c (pipe_exec, CreateChild, poll_child_status, waitpid, kill, link, rb_w32_rename, unixtime_to_filetime, rb_w32_utime)
-
pass errno to map_errno().
- win32/win32.c (rb_w32_select, rb_w32_accept, rb_w32_bind, rb_w32_connect, rb_w32_getpeername, rb_w32_getsockname, rb_w32_getsockopt, rb_w32_ioctlsocket, rb_w32_listen, rb_w32_recv, rb_w32_recvfrom, rb_w32_send, rb_w32_sendto, rb_w32_setsockopt, rb_w32_shutdown, rb_w32_socket, rb_w32_gethostbyaddr, rb_w32_gethostbyname, rb_w32_gethostname, rb_w32_getprotobyname, rb_w32_getprotobynumber, rb_w32_getservbyname, rb_w32_getservbyport, rb_w32_fclose, rb_w32_close)
-
use map_errno().
- win32/win32.h
-
add winsock errors.
2003-08-26¶ ↑
Tue Aug 26 23:53:23 2003 Yukihiro Matsumoto<EMAIL_ADDRESS>↑
- lib/ostruct.rb (OpenStruct::method_missing)
-
prohibit modifying frozen OpenStruct. [ruby-talk:80214]
Tue Aug 26 20:03:50 2003 Nobuyoshi Nakada<EMAIL_ADDRESS>↑
- lib/mkmf.rb (create_tmpsrc)
-
add the hook for source. [ruby-list:38122]
Tue Aug 26 15:59:53 2003 why the lucky stiff<EMAIL_ADDRESS>↑
- implicit.c (syck_type_id_to_taguri)
-
corrected detection of x-private types.
2003-08-24¶ ↑
Sun Aug 24 01:02:48 2003 Nobuyoshi Nakada<EMAIL_ADDRESS>↑
- file.c (file_expand_path)
-
performance improvement. [ruby-talk:79748]
2003-08-23¶ ↑
Sat Aug 23 23:41:16 2003 Yukihiro Matsumoto<EMAIL_ADDRESS>↑
- file.c (rb_file_s_expand_path)
-
avoid calling rb_scan_args() for apparent cases. [ruby-talk:79748]
Sat Aug 23 18:56:53 2003 Nobuyoshi Nakada<EMAIL_ADDRESS>↑
- ext/nkf/nkf.c (rb_nkf_putchar)
-
should use rb_str_resize() to just resize a string, rb_str_cat() disallows NULL. [ruby-dev:21237]
Sat Aug 23 16:48:41 2003 Keiju Ishitsuka<EMAIL_ADDRESS>↑
- lib/irb/ruby-lex.rb
-
bug fix for “foo” !~ /bar/. [ruby-talk:79942]
Sat Aug 23 15:59:58 2003 Nobuyoshi Nakada<EMAIL_ADDRESS>↑
- eval.c (rb_eval, rb_iterate, block_pass)
-
reduce PUSH/POP_TAG and EXEC_TAG() for retry. [ruby-dev:21216]
Sat Aug 23 02:32:33 2003 Yukihiro Matsumoto<EMAIL_ADDRESS>↑
- eval.c (rb_yield_splat)
-
should check if “values” is array.
- enum.c (each_with_index_i)
-
typo.
2003-08-22¶ ↑
Fri Aug 22 17:07:05 2003 Yukihiro Matsumoto<EMAIL_ADDRESS>↑
- enum.c (inject_i)
-
use rb_yield_values.
- enum.c (each_with_index_i)
-
ditto.
- eval.c (rb_yield_splat)
-
new function to call “yield *values”.
- string.c (rb_str_scan)
-
use rb_yield_splat().
Fri Aug 22 06:13:22 2003 why the lucky stiff<EMAIL_ADDRESS>↑
- ext/syck/rubyext.c
-
refactoring of the transfer method dispatch. added yaml_org_handler for faster dispatch of transfers to base types.
- lib/yaml/rubytypes.rb
-
removed handling of builtins from Ruby library.
- ext/syck/token.c
-
quoted and block scalars are now implicit !str
- ext/syck/implicit.c
-
empty string detected as !null.
Fri Aug 22 01:00:31 2003 Nobuyoshi Nakada<EMAIL_ADDRESS>↑
- eval.c (block_pass)
-
improve passing current block.
Fri Aug 22 00:13:00 2003 Shigeo Kobayashi<EMAIL_ADDRESS>↑
- ext/bigdecimal/bigdecimal.c
-
Int. overflow bug in multiplication fixed, and VpNmlz() speed up.
2003-08-20¶ ↑
Wed Aug 20 16:44:49 2003 Nobuyoshi Nakada<EMAIL_ADDRESS>↑
- ext/socket/socket.c (ruby_connect)
-
many systems seem to have a problem in select() after EINPROGRESS. [ruby-list:38080]
Wed Aug 20 01:31:17 2003 why the lucky stiff<EMAIL_ADDRESS>↑
- ext/syck/syck.h
-
Parser definition problems on HP-UX. [ruby-talk:79389]
- ext/syck/handler.c (syck_hdlr_get_anchor)
-
Memory leak.
- ext/syck/syck.s (syck_io_file_read)
-
Bad arguments to fread.
- ext/syck/rubyext.c
-
Tainting issues.
2003-08-19¶ ↑
Tue Aug 19 23:20:00 2003 Shigeo Kobayashi<EMAIL_ADDRESS>↑
- ext/bigdecimal/bigdecimal.c .h .html
-
to_s(“+”) implemented.
- ext/bigdecimal/lib/bigdecimal/math.rb
-
E implemented.
Tue Aug 19 11:19:33 2003 Shugo Maeda<EMAIL_ADDRESS>↑
- io.c (next_argv)
-
should not call GetOpenFile() if rb_stdout is not a IO (T_FILE).
Tue Aug 19 07:47:10 2003 GOTOU Yuuzou<EMAIL_ADDRESS>↑
- lib/webrick/ssl.rb
-
new file; SSL/TLS enhancement for GenericServer.
- lib/webrick/https.rb
-
SSLSocket handling is moved to webrick/ssl.rb.
- lib/webrick/compat.rb (File::fnmatch)
-
remove old migration code.
- lib/webrick/httpserver.rb (HTTPServer#run)
-
ditto.
- lib/webrick/server.rb (GenericServer#listen)
-
the body of this method is pull out as Utils::create_lisnteners.
- lib/webrick/utils.rb (Utils::create_lisnteners)
-
new method.
- lib/webrick/server.rb (GenericServer#start)
-
should rescue unknown errors. and refine comments.
- ext/openssl/lib/openssl/ssl.rb (SSLServer#accept)
-
should close socket if SSLSocket raises error.
Tue Aug 19 07:47:09 2003 GOTOU Yuuzou<EMAIL_ADDRESS>↑
- ext/openssl/ossl_ssl.c
-
sync_close is moved to SSLSocket as a builtin.
- ext/openssl/lib/openssl/buffering.rb (Buffering#close)
-
ditto.
- ext/openssl/lib/openssl/buffering.rb (Buffering#puts)
-
should add a return to the tails of each line.
- ext/openssl/lib/openssl/ssl.rb
-
new class OpenSSL::SSL::SSLServer.
- ext/openssl/lib/net/protocols.rb (SSLIO#ssl_connect)
-
use sync_close.
- ext/openssl/sample/echo_svr.rb
-
use SSLServer.
- ext/openssl/sample/echo_cli.rb
-
add example of SSLSocket#sync_close.
Tue Aug 19 01:24:34 2003 Nobuyoshi Nakada<EMAIL_ADDRESS>↑
- ext/curses/curses.c (_XOPEN_SOURCE_EXTENDED)
-
Mac OS X standard headers are inconsistent at this macro. [ruby-core:01432]
- ext/curses/extconf.rb
-
check if _XOPEN_SOURCE_EXTENDED breaks.
- ext/tcltklib/stubs.c
-
Status macro in X11/Xthreads.h bothers winspool.h
- instruby.rb
-
make list at first instead of iterator. [ruby-talk:79347]
2003-08-18¶ ↑
Mon Aug 18 11:23:11 2003 Nobuyoshi Nakada<EMAIL_ADDRESS>↑
- dir.c (glob_helper)
-
preserve raw order for **.
2003-08-17¶ ↑
Sun Aug 17 23:39:55 2003 Nobuyoshi Nakada<EMAIL_ADDRESS>↑
- ext/openssl/extconf.rb (HAVE_VA_ARGS_MACRO)
-
need to compile.
Sun Aug 17 17:10:03 2003 GOTOU Yuuzou<EMAIL_ADDRESS>↑
- ext/openssl/lib/openssl/ssl.rb (SSLSocket#sync_close=)
-
add a method to specify if the underlying IO will be closed in SSLSocket#close.
- ext/openssl/lib/openssl/buffering.rb
-
add forwarders to setsockopt, getsockopt and fcntl.
- ext/openssl/lib/net/protocols.rb
-
enable sync for SSLSocket.
Sun Aug 17 11:32:04 2003 Nobuyoshi Nakada<EMAIL_ADDRESS>↑
- ext/extmk.rb (extmake)
-
should not force to remake Makefile when installation and so on.
2003-08-16¶ ↑
Sat Aug 16 23:58:18 2003 Nobuyoshi Nakada<EMAIL_ADDRESS>↑
- marshal.c (w_symbol, w_object)
-
get rid of warnings.
- re.c (rb_memsearch)
-
ditto.
- time.c (time_dump)
-
ditto.
- ext/extmk.rb (extmake)
-
not continue making when extconf.rb failed.
- ext/openssl/extconf.rb
-
check VA_ARGS macro more precisely.
- ext/openssl/ossl.h
-
remove version.h dependency.
- ext/openssl/ruby_missing.h
-
ditto.
- lib/mkmf.rb (pkg_config)
-
use –libs output except with only-L for other options. [ruby-list:38099]
- lib/mkmf.rb (create_makefile)
-
separate rule for static library from shared object.
- win32/Makefile.sub, bcc32/Makefile.sub, wince/Makefile.sub
-
define exec_prefix and libdir.
2003-08-15¶ ↑
Fri Aug 15 23:15:00 2003 Shigeo Kobayashi<EMAIL_ADDRESS>↑
- ext/bigdecimal/bigdecimal.c .h
-
Bug in combination of limit & div method fixed.
- ext/bigdecimal/lib/bigdecimal/math.rb
-
atan() & sqrt() added.
Fri Aug 15 12:01:44 2003 Nobuyoshi Nakada<EMAIL_ADDRESS>↑
- configure.in (HUGE_ST_INO)
-
check whether struct stat.st_ino is larger than long. [ruby-dev:21194] www.geocities.co.jp/SiliconValley-PaloAlto/1409/ruby/beos.html
- error.c (syserr_eqq)
-
errno might exceed Fixnum limit.
- error.c (Init_Exception)
-
moved base initialization from init_syserr().
- inits.c (rb_call_inits)
-
postpone initializing errnos until Bignum is available.
Fri Aug 15 12:01:43 2003 Nobuyoshi Nakada<EMAIL_ADDRESS>↑
- ext/curses/curses.c (_XOPEN_SOURCE_EXTENDED)
-
needed to let keyname() and so on be declared.
- ext/curses/curses.c (curses_resizeterm, window_resize)
-
arguments conflicted with macros in term.h.
- ext/curses/curses.c (Curses module methods)
-
ensure initialized. [ruby-dev:21191]
Fri Aug 15 02:08:53 2003 Yukihiro Matsumoto<EMAIL_ADDRESS>↑
- gc.c (id2ref)
-
recycle check should be done by klass == 0. [ruby-core:01408]
Fri Aug 15 01:34:23 2003 Michal Rokos<EMAIL_ADDRESS>↑
- ext/openssl/ossl_pkey.c
-
move generate_cb here
- ext/openssl/ossl_pkey_{dh|dsa|rsa}.c
-
adapt to this cb
- ext/openssl/openssl_missing.
-
add (0.9.6x, x<j) missing BN funcs
- ext/openssl/ossl_bn.c
-
use supplied funcs from openssl_missing.c
Fri Aug 15 00:38:00 2003 Shigeo Kobayashi<EMAIL_ADDRESS>↑
- ext/bigdecimal/bigdecimal.c
-
Bug in div method fixed.
- ext/bigdecimal/lib/bigdecimal/math.rb
-
Newly added.
- ext/bigdecimal/sample/pi.rb
-
Changed so as to use math.rb.
2003-08-14¶ ↑
Thu Aug 14 21:19:14 2003 Yukihiro Matsumoto<EMAIL_ADDRESS>↑
- eval.c (Init_Thread)
-
Continuation#[] added. [ruby-talk:79028]
Thu Aug 14 20:03:34 2003 Masaki Suketa<EMAIL_ADDRESS>↑
- ext/win32ole/win32ole.c (OLE_FREE)
-
should not call ole_message_loop.
- ext/win32ole/win32ole.c (ole_event_free)
-
ditto.
- ext/win32ole/win32ole.c (ole_initialize)
-
stop calling OleUninitialize at exit.
Thu Aug 14 11:27:37 2003 NAKAMURA Usaku<EMAIL_ADDRESS>↑
- gc.c (rb_data_object_alloc)
-
check type of 1st argument. [ruby-dev:21192]
Thu Aug 14 00:21:14 2003 Yukihiro Matsumoto<EMAIL_ADDRESS>↑
- parse.y (mlhs_node)
-
should allow “::Foo” (colon3) as lhs.
- parse.y (lhs)
-
ditto.
- parse.y (yylex)
-
should return tCOLON3 right after kCLASS. [ruby-talk:78918]
- error.c (exc_initialize)
-
was converting argument to string too eagerly. Only check was needed. [ruby-talk:78958]
2003-08-13¶ ↑
Wed Aug 13 23:31:00 2003 Shigeo Kobayashi<EMAIL_ADDRESS>↑
- ext/bigdecimal/bigdecimal.c .h .html
-
Ambiguity of BigDecimal.limit removed.
Wed Aug 13 19:21:34 2003 Christian Neukirchen<EMAIL_ADDRESS>↑
- lib/webrick/https.rb (HTTPServer#run)
-
should set syncing-mode to SSLSocket. [ruby-talk:78919]
Wed Aug 13 18:13:49 2003 Yukihiro Matsumoto<EMAIL_ADDRESS>↑
- eval.c (POP_BLOCK)
-
turn on BLOCK_LEFT flag when leaving block.
- eval.c (proc_invoke)
-
unpack return/break destination when block is already left.
Wed Aug 13 15:58:31 2003 WATANABE Hirofumi<EMAIL_ADDRESS>↑
- object.c (rb_class_s_alloc)
-
add function prototype to avoid VC++ warning.
Wed Aug 13 13:50:59 2003 NAKAMURA Usaku<EMAIL_ADDRESS>↑
- ext/Win32API/Win32API.c (Win32API_initialize)
-
should pass some class to first argument of Data_Wrap_Struct(). (ruby-bugs:PR#1109)
2003-08-12¶ ↑
Tue Aug 12 16:55:11 2003 Nobuyoshi Nakada<EMAIL_ADDRESS>↑
- Makefile.in
-
static link libraries to LIBRUBY_SO with static linked ext. [ruby-dev:21157]
- ext/extmk.rb (extmake)
-
sort extension library initialization order.
- ext/extmk.rb (extmake)
-
compact $extlibs.
Tue Aug 12 02:48:56 2003 Yukihiro Matsumoto<EMAIL_ADDRESS>↑
- eval.c (THREAD_SAVE_CONTEXT)
-
should explicitly turn off the flag before calling getcontext(2).
- eval.c (struct thread)
-
add member to save backing store on IA64. (ruby-bugs PR1086)
- eval.c (thread_mark)
-
mark IA64 backing store region.
- eval.c (thread_free)
-
free saved IA64 backing store.
- eval.c (rb_thread_save_context)
-
save IA64 backing store as well.
- eval.c (rb_thread_restore_context)
-
restore IA64 backing store.
- eval.c (THREAD_ALLOC)
-
initialize IA64 members.
2003-08-11¶ ↑
Mon Aug 11 22:31:50 2003 NAKAMURA, Hiroshi<EMAIL_ADDRESS>↑
- lib/debug.rb(debug_command)
-
inspection command should inspect resulting value even if it's nil. [ruby-dev:21180] by OMAE, jun<EMAIL_ADDRESS>- lib/debug.rb(debug_command)
-
incomplete regexp.
Mon Aug 11 17:33:07 2003 Yukihiro Matsumoto<EMAIL_ADDRESS>↑
- eval.c (rb_call_super)
-
do not use rb_block_given_p() for check. [ruby-talk:78656]
- eval.c (BEGIN_CALLARGS)
-
push ITER_NOT only when ITER_PRE.
2003-08-10¶ ↑
Sun Aug 10 10:43:05 2003 GOTOU Yuuzou<EMAIL_ADDRESS>↑
- ext/openssl/lib/openssl/buffering.rb
-
increase BLOCK_SIZE from 1k to 16k bytes. [ruby-talk:78603]
- ext/openssl/ossl_ssl.c (ossl_sslctx_s_alloc)
-
enable partial write to allow interruption in SSLSocket#write.
Sun Aug 10 00:34:16 2003 WATANABE Hirofumi<EMAIL_ADDRESS>↑
- cygwin/GNUmakefile
-
remove unnecessary '–drive-name=$(CC)' for ccache.
2003-08-09¶ ↑
Sat Aug 9 10:36:21 2003 Yukihiro Matsumoto<EMAIL_ADDRESS>↑
- marshal.c (w_object)
-
do not dump generic instance variable when marshal_dump is defined.
Sat Aug 9 00:35:00 2003 Shigeo Kobayashi<EMAIL_ADDRESS>↑
- ext/bigdecimal.c
-
F style output(like 1234.56789) implemented to to_s method.
- ext/bigdecimal_??.html
-
F style output(like 1234.56789) implemented to to_s method.
2003-08-08¶ ↑
Fri Aug 8 12:33:17 2003 WATANABE Hirofumi<EMAIL_ADDRESS>↑
- bcc32/Makefile.sub
-
rubyw.exe should be a Windows GUI program. add the -aa option to WLDFLAGS.
Fri Aug 8 11:29:26 2003 Koji Arai<EMAIL_ADDRESS>↑
- marshal.c (w_object)
-
should set `c_arg' at first.
Fri Aug 8 03:22:28 2003 GOTOU Yuuzou<EMAIL_ADDRESS>↑
- lib/webrick/httputils.rb (FormData#list)
-
should not take a side effect for the receiver.
2003-08-07¶ ↑
Thu Aug 7 14:40:37 2003 WATANABE Hirofumi<EMAIL_ADDRESS>↑
- cygwin/GNUmakefile
-
better –disbale-shared option support.
- cygwin/GNUmakefile
-
add forwarding DLL target for cygwin.
Thu Aug 7 14:21:05 2003 Corinna Vinschen<EMAIL_ADDRESS>↑
- configure.in
-
Fix Cygwin specific naming of libraries to be net distribution compliant. (ruby-bugs:PR#1077) cygwin-ruby18.dll -> cygruby18.dll
Thu Aug 7 12:51:38 2003 Yukihiro Matsumoto<EMAIL_ADDRESS>↑
- eval.c (rb_f_at_exit)
-
should not be called without a block. block_given check added.
Thu Aug 7 06:46:06 2003 Yukihiro Matsumoto<EMAIL_ADDRESS>↑
- eval.c (rb_call0)
-
forgot to pop ruby_class.
- eval.c (rb_call0)
-
update ruby_class as well as ruby_cref.
- (ruby-bugs-ja
-
PR#540)
Thu Aug 7 04:52:50 2003 Yukihiro Matsumoto<EMAIL_ADDRESS>↑
- eval.c (rb_yield_0)
-
remove ruby_frame->cbase and unify to ruby_cref. [ruby-talk:78141]
Thu Aug 7 04:19:15 2003 Akinori MUSHA<EMAIL_ADDRESS>↑
- gc.c
-
FreeBSD/ia64's mcontext_t is a bit different from that of Linux/ia64. This makes gc.c compile but miniruby coredumps for the moment.
Thu Aug 7 00:15:00 2003 Shigeo Kobayashi<EMAIL_ADDRESS>↑
- ext/bigdecimal.c
-
Comparison results adjusted to Float's.
- ext/bigdecimal.c
-
Use rb_num_coerce_????(x,y) instead of own.
2003-08-06¶ ↑
Wed Aug 6 22:58:00 2003 Nathaniel Talbott<EMAIL_ADDRESS>↑
- lib/test/unit/testcase.rb
-
Added equality checking.
- lib/test/unit/testsuite.rb
-
Added equality checking.
- lib/test/unit/assertions.rb
-
Fixed a warning.
Wed Aug 6 17:28:10 2003 Nobuyoshi Nakada<EMAIL_ADDRESS>↑
- ext/extmk.rb (extmake)
-
pass LIBPATH to make ruby. [ruby-dev:21137]
- ext/extmk.rb (extmake)
-
set library name as source file name in Init_ext(). [ruby-dev:21137]
- lib/mkmf.rb (Logging::postpone)
-
postpone logging messages after heading message as the result of the block.
- lib/mkmf.rb (macro_defined?)
-
append newline to src unless ended with it.
- lib/mkmf.rb (have_library)
-
treat nil function name as “main”.
- (ruby-bugs
-
PR#1083)
- lib/mkmf.rb (pkg_config)
-
should append additional libraries to $libs but not $LIBS. [ruby-dev:21137]
- ext/io/wait/extconf.rb
-
check DOSISH macro instead of platform.
- ext/digest/sha1/extconf.rb
-
have_library already appends library name.
Wed Aug 6 17:23:57 2003 Yukihiro Matsumoto<EMAIL_ADDRESS>↑
- eval.c
-
initialize /* OK */ variables by Qnil to stop warnings.
Wed Aug 6 04:58:32 2003 NAKAMURA Usaku<EMAIL_ADDRESS>↑
- ext/Setup*
-
add io/wait and openssl.
Wed Aug 6 01:13:38 2003 Yukihiro Matsumoto<EMAIL_ADDRESS>↑
- eval.c (rb_f_autoload)
-
use ruby_cbase instead of ruby_class.
- eval.c (rb_f_autoload_p)
-
ditto.
- class.c (rb_mod_init_copy)
-
no longer implements independent clone and dup methods. override “initialize_copy” instead. [ruby-core:01352]
- object.c (rb_class_s_alloc)
-
define Class allocation function. this makes Classes to follow clone framework that uses initialize_copy.
- object.c (rb_class_initialize)
-
separate instantiation and initialization.
- object.c (rb_obj_alloc)
-
prohibit instantiation from uninitialized class.
- object.c (rb_class_superclass)
-
check uninitialized class.
- array.c (rb_ary_fill)
-
wrong index processing with block. this fix was done by Koji Arai<EMAIL_ADDRESS>[ruby-list:38029]
- marshal.c (w_object)
-
should preserve generic ivar for nil, true, false, symbols, and fixnums.
- marshal.c (w_uclass)
-
base_klass check should be done after rb_class_real().
Wed Aug 6 01:18:50 2003 Minero Aoki<EMAIL_ADDRESS>↑
- lib/net/http.rb
-
update document.
- lib/net/pop.rb
-
ditto.
- lib/net/protocol.rb
-
ditto.
Wed Aug 6 00:48:37 2003 Koji Arai<EMAIL_ADDRESS>↑
- marshal.c (w_object)
-
should recommend marshal_dump rather than _dump_data.
2003-08-05¶ ↑
Tue Aug 5 17:58:57 2003 WATANABE Hirofumi<EMAIL_ADDRESS>↑
- lib/fileutils.rb (install)
-
should preserve timestamp only.
Tue Aug 5 17:31:59 2003 Ian Macdonald<EMAIL_ADDRESS>↑
- lib/shell/command-processor.rb (Shell::CommandProcessor::rmdir)
-
simple typo.
Tue Aug 5 15:47:34 2003 Nobuyoshi Nakada<EMAIL_ADDRESS>↑
- eval.c (rb_load)
-
should preserve current source file/line.
Tue Aug 5 10:04:42 2003 Yukihiro Matsumoto<EMAIL_ADDRESS>↑
- string.c (str_new4)
-
ptr may refer to null_str.
2003-08-04¶ ↑
Mon Aug 4 17:25:18 2003 Yukihiro Matsumoto<EMAIL_ADDRESS>↑
2001-05-23¶ ↑
Mon May 23 00:35:00 2001 Kenta Murata<EMAIL_ADDRESS>↑
- bignum.c (dump_bignum, bigmul1_balance, big_split, biglsh_bang), (bigrsh_bang, big_split3, bigmul1_toom3, bigmul0)
-
implement Toom3 (Toom-Cook) multiplication.
- include/ruby/defines.h
-
add format prefixes for BDIGIT and BDIGIT_DBL.


| Top |
| #define | GTK_LEVEL_BAR_OFFSET_LOW |
| #define | GTK_LEVEL_BAR_OFFSET_HIGH |
| #define | GTK_LEVEL_BAR_OFFSET_FULL |
| enum | GtkLevelBarMode |
| struct | GtkLevelBar |
The GtkLevelBar is a bar widget that can be used as a level indicator. Typical use cases are displaying the strength of a password, or showing the charge level of a battery.
Use gtk_level_bar_set_value()
to set the current value, and
gtk_level_bar_add_offset_value()
to set the value offsets at which
the bar will be considered in a different state. GTK will add a few
offsets by default on the level bar: GTK_LEVEL_BAR_OFFSET_LOW,
GTK_LEVEL_BAR_OFFSET_HIGH and GTK_LEVEL_BAR_OFFSET_FULL, with
values 0.25, 0.75 and 1.0 respectively.
Note that it is your responsibility to update preexisting offsets when changing the minimum or maximum value. GTK+ will simply clamp them to the new range.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
static GtkWidget * create_level_bar (void) { GtkWidget *widget; GtkLevelBar *bar; widget = gtk_level_bar_new (); bar = GTK_LEVEL_BAR (widget); // This changes the value of the default low offset gtk_level_bar_add_offset_value (bar, GTK_LEVEL_BAR_OFFSET_LOW, 0.10); // This adds a new offset to the bar; the application will // be able to change its color CSS like this: // // levelbar block.my-offset { // background-color: magenta; // border-style: solid; // border-color: black; // border-style: 1px; // } gtk_level_bar_add_offset_value (bar, "my-offset", 0.60); return widget; } |
The default interval of values is between zero and one, but it’s possible to
modify the interval using gtk_level_bar_set_min_value()
and
gtk_level_bar_set_max_value()
. The value will be always drawn in proportion to
the admissible interval, i.e. a value of 15 with a specified interval between
10 and 20 is equivalent to a value of 0.5 with an interval between 0 and 1.
When GTK_LEVEL_BAR_MODE_DISCRETE is used, the bar level is rendered
as a finite number of separated blocks instead of a single one. The number
of blocks that will be rendered is equal to the number of units specified by
the admissible interval.
For instance, to build a bar rendered with five blocks, it’s sufficient to set the minimum value to 0 and the maximum value to 5 after changing the indicator mode to discrete.
GtkLevelBar was introduced in GTK+ 3.6.
The GtkLevelBar implementation of the GtkBuildable interface supports a custom <offsets> element, which can contain any number of <offset> elements, each of which must have name and value attributes.
1 2 3 4 5 6 |
levelbar[.discrete] ╰── trough ├── block.filled.level-name ┊ ├── block.empty ┊ |
GtkLevelBar has a main CSS node with name levelbar and one of the style classes .discrete or .continuous and a subnode with name trough. Below the trough node are a number of nodes with name block and style class .filled or .empty. In continuous mode, there is exactly one node of each, in discrete mode, the number of filled and unfilled nodes corresponds to blocks that are drawn. The block.filled nodes also get a style class .level-name corresponding to the level for the current value.
In horizontal orientation, the nodes are always arranged from left to right, regardless of text direction.
GtkWidget * gtk_level_bar_new_for_interval (gdouble min_value
,gdouble max_value
);
Utility constructor that creates a new GtkLevelBar for the specified interval.
Since: 3.6
void gtk_level_bar_set_mode (GtkLevelBar *self
,GtkLevelBarMode mode
);
Sets the value of the “mode” property.
Since: 3.6
GtkLevelBarMode
gtk_level_bar_get_mode (GtkLevelBar *self
);
Returns the value of the “mode” property.
Since: 3.6
void gtk_level_bar_set_value (GtkLevelBar *self
,gdouble value
);
Sets the value of the “value” property.
Since: 3.6
gdouble
gtk_level_bar_get_value (GtkLevelBar *self
);
Returns the value of the “value” property.
Since: 3.6
void gtk_level_bar_set_min_value (GtkLevelBar *self
,gdouble value
);
Sets the value of the “min-value” property.
You probably want to update preexisting level offsets after calling this function.
Since: 3.6
gdouble
gtk_level_bar_get_min_value (GtkLevelBar *self
);
Returns the value of the “min-value” property.
Since: 3.6
void gtk_level_bar_set_max_value (GtkLevelBar *self
,gdouble value
);
Sets the value of the “max-value” property.
You probably want to update preexisting level offsets after calling this function.
Since: 3.6
gdouble
gtk_level_bar_get_max_value (GtkLevelBar *self
);
Returns the value of the “max-value” property.
Since: 3.6
void gtk_level_bar_set_inverted (GtkLevelBar *self
,gboolean inverted
);
Sets the value of the “inverted” property.
Since: 3.8
gboolean
gtk_level_bar_get_inverted (GtkLevelBar *self
);
Return the value of the “inverted” property.
Since: 3.8
void gtk_level_bar_add_offset_value (GtkLevelBar *self
,const gchar *name
,gdouble value
);
Adds a new offset marker on self
at the position specified by value
.
When the bar value is in the interval topped by value
(or between value
and “max-value” in case the offset is the last one on the bar)
a style class named level-
name
will be applied
when rendering the level bar fill.
If another offset marker named name
exists, its value will be
replaced by value
.
Since: 3.6
void gtk_level_bar_remove_offset_value (GtkLevelBar *self
,const gchar *name
);
Removes an offset marker previously added with
gtk_level_bar_add_offset_value()
.
Since: 3.6
gboolean gtk_level_bar_get_offset_value (GtkLevelBar *self
,const gchar *name
,gdouble *value
);
Fetches the value specified for the offset marker name
in self
,
returning TRUE
in case an offset named name
was found.
self |
||
name |
the name of an offset in the bar. |
[allow-none] |
value |
location where to store the value. |
[out] |
Since: 3.6
#define GTK_LEVEL_BAR_OFFSET_LOW "low"
The name used for the stock low offset included by GtkLevelBar.
Since: 3.6
#define GTK_LEVEL_BAR_OFFSET_HIGH "high"
The name used for the stock high offset included by GtkLevelBar.
Since: 3.6
#define GTK_LEVEL_BAR_OFFSET_FULL "full"
The name used for the stock full offset included by GtkLevelBar.
Since: 3.20
Describes how GtkLevelBar contents should be rendered. Note that this enumeration could be extended with additional modes in the future.
Since: 3.6
“inverted”
property“inverted” gboolean
Level bars normally grow from top to bottom or left to right. Inverted level bars grow in the opposite direction.
Flags: Read / Write
Default value: FALSE
Since: 3.8
“max-value”
property“max-value” gdouble
The “max-value” property determaxes the maximum value of the interval that can be displayed by the bar.
Flags: Read / Write
Allowed values: >= 0
Default value: 1
Since: 3.6
“min-value”
property“min-value” gdouble
The “min-value” property determines the minimum value of the interval that can be displayed by the bar.
Flags: Read / Write
Allowed values: >= 0
Default value: 0
Since: 3.6
“mode”
property“mode” GtkLevelBarMode
The “mode” property determines the way GtkLevelBar interprets the value properties to draw the level fill area. Specifically, when the value is GTK_LEVEL_BAR_MODE_CONTINUOUS, GtkLevelBar will draw a single block representing the current value in that area; when the value is GTK_LEVEL_BAR_MODE_DISCRETE, the widget will draw a succession of separate blocks filling the draw area, with the number of blocks being equal to the units separating the integral roundings of “min-value” and “max-value”.
Flags: Read / Write
Default value: GTK_LEVEL_BAR_MODE_CONTINUOUS
Since: 3.6
“min-block-height”
style property“min-block-height” gint
The min-block-height style property determines the minimum height for blocks filling the GtkLevelBar widget.
GtkLevelBar:min-block-height
has been deprecated since version 3.20 and should not be used in newly-written code.
Use the standard min-width/min-height CSS properties on the block elements; the value of this style property is ignored.
Flags: Read / Write
Allowed values: >= 1
Default value: 3
Since: 3.6
“min-block-width”
style property“min-block-width” gint
The min-block-width style property determines the minimum width for blocks filling the GtkLevelBar widget.
GtkLevelBar:min-block-width
has been deprecated since version 3.20 and should not be used in newly-written code.
Use the standard min-width/min-height CSS properties on the block elements; the value of this style property is ignored.
Flags: Read / Write
Allowed values: >= 1
Default value: 3
Since: 3.6
“offset-changed”
signalvoid user_function (GtkLevelBar *self, gchar *name, gpointer user_data)
Emitted when an offset specified on the bar changes value as an
effect to gtk_level_bar_add_offset_value()
being called.
The signal supports detailed connections; you can connect to the detailed signal "changed::x" in order to only receive callbacks when the value of offset "x" changes.
self |
||
name |
the name of the offset that changed value |
|
user_data |
user data set when the signal handler was connected. |
Flags: Has Details
Since: 3.6


public class KeyBoardHandler
extends java.lang.Object
implements java.awt.event.KeyListener
Player
| Constructor and Description |
|---|
KeyBoardHandler(Player player,
int velocity,
java.awt.Dimension screenSize)
Constructs a keyboard handler to be used as a "KeyListener" for another class
|
| Modifier and Type | Method and Description |
|---|---|
int |
getDown()
The getter of the button used to move the player to the down
|
int |
getLeft()
The getter of the button used to move the player to the left
|
Player |
getPlayer()
The getter of the player parameter
|
int |
getRight()
The getter of the button used to move the player to the right
|
java.awt.Dimension |
getScreenSize()
The getter of the screenSize parameter
|
int |
getUp()
The getter of the button used to move the player to the up
|
int |
getVelocity()
The getter of the velocity parameter
|
void |
keyPressed(java.awt.event.KeyEvent ke)
DO NOT INVOKE IT.
|
void |
keyReleased(java.awt.event.KeyEvent ke)
DO NOT INVOKE IT.
|
void |
keyTyped(java.awt.event.KeyEvent ke)
DO NOT INVOKE IT.
|
void |
MoveThePlayer()
It will be invoked inside the GameRender class to move the player
|
void |
setDown(int down)
The setter of the button used to move the player to the down
|
void |
setLeft(int left)
The setter of the button used to move the player to the left
|
void |
setPlayer(Player player)
The setter of the player parameter
|
void |
setRight(int right)
The setter of the button used to move the player to the right
|
void |
setScreenSize(java.awt.Dimension screenSize)
The setter of the screenSize parameter
|
void |
setUp(int up)
The setter of the button used to move the player to the up
|
void |
setVelocity(int velocity)
The setter of the velocity parameter
|
public KeyBoardHandler(Player player, int velocity, java.awt.Dimension screenSize)
player
- is the object wanted to be controlledvelocity
- the velocity that is going to be used as the speed of the playerscreenSize
- is the size of the screen to keep the player inside the screenjava.lang.NullPointerException
- if there is no player OR no screenSizepublic void setScreenSize(java.awt.Dimension screenSize)
screenSize
- java.lang.NullPointerException
- if there is no object for screen sizeNullPointerException
public java.awt.Dimension getScreenSize()
public void setVelocity(int velocity)
velocity
- public int getVelocity()
public void setPlayer(Player player)
player
- java.lang.NullPointerException
- if there is no player objectNullPointerException
,
Player
public Player getPlayer()
public void MoveThePlayer()
GameRenderer
public void keyPressed(java.awt.event.KeyEvent ke)
keyPressed
in interface java.awt.event.KeyListener
public void keyReleased(java.awt.event.KeyEvent ke)
keyReleased
in interface java.awt.event.KeyListener
public void keyTyped(java.awt.event.KeyEvent ke)
keyTyped
in interface java.awt.event.KeyListener
public int getRight()
public void setRight(int right)
right
- is the key code of the button that is going to be used as a right control button. It is recommended
to use KeyEvent classpublic int getLeft()
public void setLeft(int left)
left
- is the key code of the button that is going to be used as a left control button. It is recommended
to use KeyEvent classpublic int getUp()
public void setUp(int up)
up
- is the key code of the button that is going to be used as a up control button. It is recommended
to use KeyEvent classpublic int getDown()
public void setDown(int down)
down
- is the key code of the button that is going to be used as a down control button. It is recommended
to use KeyEvent class


This Website is designed to help YOU learn about Landlord's and Renter's Insurnace
Before you ask "what in god's name is that and why would I ever need it", that's why your on this website so go through the rest of it first. Jeez.


Overview
Namespaces
Scene7
Commands
Layer
Definitions
Helpers
Html
Attributes
Requests
Traits
BackgroundColor
BlendMode
Blur
Brightness
ClipPath
Color
ColorBalance
Colorize
Contrast
Effect
Extend
Flip
Grow
Hide
Hue
Invert
Map
Noise
Opacity
Origin
PathAttributes
PathEmbed
Position
Rotate
Saturation
Sharpen
Size
Source
Text
TextAngle
TextAttributes
TextFlowPath
TextPath
TextPhotoshopCompatible
Overview
Namespace
Class
Trait TextPath
Direct Known Users
Scene7\Commands\Layer
Namespace:
Scene7
\
Commands
\
Layer
Located at
Commands/Layer/TextPath.php
Methods summary
public
#
setTextPath
(
$path
)


Dolphins are often regarded as one of Earth's most intelligent animals, though it is hard to say just how intelligent.
Dolphins are a widely distributed and diverse group of aquatic mammals. They are an informal grouping within the order Cetacea, excluding whales and porpoises, so to zoologists the grouping is paraphyletic.


शंखनाद
Register Here
Name
Email
Mobile No.
University
Events
Debate
Nukkad Naatak
Debate
Nukkad Naatak
Debate
Nukkad Naatak
Debate
Nukkad Naatak
Debate
Nukkad Naatak


DIV #1
position: absolute;
DIV #2
position: relative;
DIV #3
position: relative;
DIV #4
position: absolute;
DIV #5
position: static;


Full Dataset
Visualising all the data we have.
Hover over the circle to see the country.
Open to interpretations, but it seems that countries to the right are economically and socially better off than countries on the left.
Visualising all the data we have.
Hover over the circle to see the country.
Open to interpretations, but it seems that countries to the right are economically and socially better off than countries on the left.
Visualisation made on the welfare data, such as GDP per capita, literacy rate, mortality, etc.
Hover over the circle to see the country.
Open to interpretations, but it seems that countries to the left have better economical conditions.
Visualising the healthcare related subset of the data: mortality, disease prevalence, health expenditure.
Hover over the circle to see the country.
Open to interpretations, but it seems that countries to the right have better healthcare.


| FAQ |
|
Yes, SimRobot is OpenSource software and released under GPL license. You can modify it as long as those changes comply license agreement.
Yes, SimRobot is very flexible, you can write your own plug-ins. Look at Architecture Components and SimRobot API sections.


If you're an undergraduate/recent undergrad who wants to understand what doing research is all about, resources on this page should help you get a sense for it.
Tags:
This webpage is directed at those who want to learn what a career in research may end up looking like. When starting off their undergrad degrees in science and engineering, most are fueled by an idealism to do great science. However, few mechanisms exist in our educational institutions that actually tell us what research is all about, and how one can tangibly get started. As a consequence, many just don’t end up figuring out these details, have no idea what the journey promises to offer, and as a consequence, move on to other well-documented paths to jobs in the industry. While there’s nothing wrong really in working in the industry, academia and scholarship loses out on the next potential Curie or Feynman. I hope the information in this page helps fast-track the process of learning more about this niche career choice.
While this is most directly useful to students in Computer science (since that’s my background), I do believe the general principles I lay out will be relevant to students from other fields as well. Please do write to my with your thoughts, clarifications, other resources you found helpful, etc. My email<EMAIL_ADDRESS>The spirit of this document is not really to serve as a collection of resources that will help you figure out how to crack the admissions process of universities in the US/Europe for MS/PhD programs. Rather, please use it as a way to discover what you are truly interested in. You don’t have to follow a template of doing X research projects, having Y publications, and collecting Z letters from the best profs out there for you to have a great grad school application. Neither do you have to go to grad school to realize a career in research. Rather, it is infinitely more important in my opinion to develop a concrete sense for what it takes to do research. In that process, you’ll hopefully find a domain which excites you and bothers you at the same time, and which you would want to explore further in a grad school or a research-oriented job. Once you get to this stage of self-awareness, you will find yourself organically having all the ingredients necessary for a successful grad school application. It is best to then learn the tricks used when applying to grad schools or research jobs (SOPs, letters of recommendation, how many schools to apply to, etc.), and play that game right.
I have put together a short course which introduces the idea of research in CS.
You can access the course page here: https://csresearch101.netlify.app/
This webpage comprehensively documents the ingridients needed to get started with your first research journey.
The content in the course page linked above was inspired by a note I’d put out earlier.
That “older” content can be accessed here.


Disclaimer
We don't claim accuracy of the data on our website, as this is a crowdsourced data which has not been through vetting process. Please verify with other sources for information accuracy. All the data present on the website is contributed by users and we are not resposible for any privacy violations occured, in-case if you find you that your personal data is present on our website without your conset. Please report immediately through chat bubble on our contact page. Alternatively you can also reach us on reach (at) zerofood.in


What are Operators in JavaScript
Operators are symbols or keywords that tell the JavaScript engine to perform some sort of actions. For example, the addition (+) symbol is an operator that tells JavaScript engine to add two variables or values, while the equal-to (==), greater-than (>) or less-than (<) symbols are the operators that tells JavaScript engine to compare two variables or values, and so on.
The following sections describe the different operators used in JavaScript.
Arithmetic operators
In JavaScript,arithmetic operators take numerical values as their operands and return a single numerical value.
The arithmetic operators are used to perform common arithmetical operations, such as addition, subtraction, multiplication etc. Here's a complete list of JavaScript's arithmetic operators:
| Operator | Description |
|---|---|
+ |
Addition |
- |
Subtraction |
* |
Multiplication |
/ |
Division |
% |
Modulus |
Example
Try this code »
Logical operators
Logical operators are used to determine the logic between variables or values.
There are three logical operators in JavaScript:|| (OR), && (AND), ! (NOT
|| (OR)
|| is known as OR operator. It checks whether any one of the two operands is non-zero (0, false, undefined, null or “” is considered as zero).
&& (AND)
&& is known as AND operator. It checks whether two operands are non-zero (0, false, undefined, null or “” are considered as zero), if yes then returns 1 otherwise 0.
! (NOT)
! is known as NOT operator. It reverses the boolean result of the operand (or condition)
Example
Try this code »
JavaScript Conditional Statements
Like many other programming languages, JavaScript also allows you to write code that perform different actions based on the results of a logical or comparative test conditions at run time. This means, you can create test conditions in the form of expressions that evaluates to either true or false and based on these results you can perform certain actions.
There are several conditional statements in JavaScript that you can use to make decisions:
the if statement,The if...else statement,The if...else if....else statement,he switch...case statement
We will discuss each of these statements in detail in the coming sections.
The if Statement
The if statement is used to execute a block of code only if the specified condition evaluates to true. This is the simplest JavaScript's conditional statements and can be written like:
// Code to be executed
}
The following example will output "Have a nice weekend!" if the current day is Friday:
Example
Try this code »
The if...else
Statement
You can enhance the decision making capabilities of your JavaScript program by providing an alternative choice through adding an else statement to the if statement. The if...else statement allows you to execute one block of code if the specified condition is evaluates to true and another block of code if it is evaluates to false. It can be written, like this:
Example
Try this code »
The if...else if...else Statement
The if...else if...else a special statement that is used to combine multiple if...else statements.
// Code to be executed if condition1 is true
} else if(condition2) {
// Code to be executed if the condition1 is false and condition2 is true
} else {
// Code to be executed if both condition1 and condition2 are false
}
The following example will output "Have a nice weekend!" if the current day is Friday, and "Have a nice Sunday!" if the current day is Sunday, otherwise it will output "Have a nice day!"
Example
Try this code »
Comparison Operators
Comparison operators are used in logical statements to determine equality or difference between variables or values.
Given that x = 5, the table below explains the comparison operators:
| Operator | Description | Comparing | Returns | Try it |
|---|---|---|---|---|
| == | equal to | x == 8 | false | Try it » |
| x == 5 | true | Try it » | ||
| x == "5" | true | Try it » | ||
| === | equal value and equal type | x === 5 | true | Try it » |
| x === "5" | false | Try it » | ||
| != | not equal | x != 8 | true | Try it » |
| !== | not equal value or not equal type | x !== 5 | false | Try it » |
| x !== "5" | true | Try it » | ||
| x !== 8 | true | Try it » | ||
| > | greater than | x > 8 | false | Try it » |
| < | less than | x < 8 | true | Try it » |
| >= | greater than or equal to | x >= 8 | false | Try it » |
| <= | less than or equal to | x <= 8 | true | Try it » |


This Privacy Policy was last updated on November 8, 2012.
Welcome to the web sites (collectively, the "Site") of Rev.com, Inc. ( "Rev", "we", "us" and/or "our"). This Site is operated by Rev and has been created to provide information about our company and translation and document related services (the "Services") to our users ("you", "your"). This Privacy Policy sets forth Rev's policy with respect to information, including personally identifiable data ("Personal Data"), and other information that is collected from Site visitors and users of the Services.
When you interact with us through the Site or the Services, we may collect Personal Data and other information from you, as further described below:
Personal Data That You Provide Through the Site: We collect Personal Data from you when you voluntarily provide such information such as when you register for access to the Services (for example, your name and mailing address), use certain Services, contact us with inquiries or respond to one of our surveys. Wherever Rev collects Personal Data we make an effort to provide a link to this Privacy Policy.
By voluntarily providing us with Personal Data, you are consenting to our use of it in accordance with this Privacy Policy. If you provide Personal Data, you acknowledge and agree that such Personal Data may be transferred from your current location to the offices and servers of Rev and the authorized third parties referred to herein located in the United States.
Non-IdentifiablAggregated Data: When you interact with Rev through the Site or Services, we receive and store certain personally non-identifiable information. Such information, which is collected passively using various technologies, cannot presently be used to specifically identify you. Rev may store such information itself or such information may be included in databases owned and maintained by Rev affiliates, agents or service providers. This Site may use such information and pool it with other information to track, for example, the total number of visitors to our Site, the number of visitors to each page of our Site, the domain names of our visitors' Internet service providers, and how our users use and interact with the Services. Also, in an ongoing effort to better understand and serve the users of the Services, Rev often conducts research on its customer demographics, interests and behavior based on the Personal Data and other information provided to us. This research may be compiled and analyzed on an aggregate basis. Rev may share this non-identifiable and aggregate data with its affiliates, agents and business partners, but this type of non-identifiable and aggregate information does not identify you personally. Rev may also disclose aggregated user statistics in order to describe our Services to current and prospective business partners, and to other third parties for other lawful purposes.
In operating this Site, we may also use a technology called "cookies."  Our cookies help provide additional functionality to the Site and help us analyze Site usage more accurately. For instance, our Site may set a cookie on your browser that allows you to access the Site without needing to remember and then enter a password more than once during a visit to the Site. In all cases in which we use cookies, we will not collect Personal Data except with your permission. On most web browsers, you will find a "help" section on the toolbar. Please refer to this section for information on how to receive notification when you are receiving a new cookie and how to turn cookies off. We recommend that you leave cookies turned on because they allow you to take advantage of some of the Site's features.
Rev uses the Personal Data you provide in a manner that is consistent with this Privacy Policy. If you provide Personal Data for a certain reason, we may use the Personal Data in connection with the reason for which it was provided. For instance, if you contact us by email, we will use the Personal Data you provide to answer your question or resolve your problem. Also, if you provide Personal Data in order to obtain access to the Services, we will use your Personal Data to provide you with access to such services and to monitor your use of such services. Rev and its subsidiaries and affiliates (the "Related Companies") may also use your Personal Data and other personally non-identifiable information collected through the Site to help us improve the content and functionality of the Site, to better understand our users and to improve the Services. Rev and its Related Companies may use this information to communicate with you regarding the Services or to tell you about services we believe will be of interest to you. If we do so, each marketing communication we send you will contain instructions permitting you to "opt-out" of receiving future marketing communications. Note however that as user of the Service you cannot opt-out of some administrative communications that are reasonably necessary to the Service, such as billing or service notifications. In addition, if at any time you wish not to receive any future marketing communications or you wish to have your name deleted from our mailing lists, please contact us as indicated below.
If Rev intends on using any Personal Data in any manner that is not consistent with this Privacy Policy, you will be informed of such anticipated use prior to or at the time at which the Personal Data is collected.
Rev is not in the business of selling your information. We consider this information to be a vital part of our relationship with you. There are, however, certain circumstances in which we may share your Personal Data with certain third parties without further notice to you, as set forth below:
You can use the Site without providing any Personal Data. If you choose not to provide any Personal Data, you may not be able to use certain Services.
This Privacy Policy does not apply to any Personal Data collected by Rev other than Personal Data collected through the Site or Services. This Privacy Policy shall not apply to any unsolicited information you provide to Rev through this Site or through any other means. This includes, but is not limited to, information posted to any public areas of the Site, such as bulletin boards (collectively, "Public Areas"), any ideas for new products or modifications to existing products, and other unsolicited submissions (collectively, "Unsolicited Information"). All Unsolicited Information shall be deemed to be non-confidential and Rev shall be free to reproduce, use, disclose, distribute and exploit such Unsolicited Information without limitation or attribution.
Rev does not knowingly collect Personal Data from children under the age of 13. If you are under the age of 13, please do not submit any Personal Data through the Site. We encourage parents and legal guardians to monitor their children's Internet usage and to help enforce our Privacy Policy by instructing their children never to provide Personal Data on this Site without their permission. If you have reason to believe that a child under the age of 13 has provided Personal Data to Rev through this Site, please contact us, and we will endeavor to delete that information from our databases.
This Privacy Policy applies only to the Site. This Site may contain links to other web sites not operated or controlled by Rev (the "Third Party Sites"). The policies and procedures we described here do not apply to the Third Party Sites. The links from this Site do not imply that Rev endorses or has reviewed the Third Party Sites. We suggest contacting those sites directly for information on their privacy policies.
Rev takes reasonable steps to protect the Personal Data provided via the Site from loss, misuse, and unauthorized access, disclosure, alteration, or destruction. However, no Internet, email or other electronic transmission is ever fully secure or error free, so you should take special care in deciding what information you send to us in this way.
Your access to and use of this Site is subject to our Terms of Service located at: http://www.rev.com/about/terms
The Site and our business may change from time to time. As a result, at times it may be necessary for Rev to make changes to this Privacy Policy. Rev reserves the right to update or modify this Privacy Policy at any time and from time to time without prior notice. Please review this policy periodically, and especially before you provide any Personal Data. This Privacy Policy was last updated on the date indicated above. Your continued use of the Site after any changes or revisions to this Privacy Policy shall indicate your agreement with the terms of such revised Privacy Policy.
To keep your Personal Data accurate, current, and complete, please contact us as specified below. We will take reasonable steps to update or correct Personal Data in our possession that you have previously submitted via this Site or Services. Please also feel free to contact us if you have any questions about Rev's Privacy Policy or the information practices of this Site.
You may contact us as follows: (i) mailing us at Rev.com, Inc 461 Bush St FL 4 San Francisco CA 94108, (ii) calling us at<PHONE_NUMBER> or (iii) emailing us at dev+support@rev.com.


--- title: Social Network Data Analytics summary: Social Network analytics tags: - Social Network Analytics date: "2020-08-20T00:00:00Z" # Optional external URL for project (replaces project detail page). external_link: "" image: caption: Photo by Sara Kurfeß on Unsplash focal_point: Smart url_code: "" url_pdf: "" url_slides: "" url_video: "" # Slides (optional). # Associate this project with Markdown slides. # Simply enter your slide deck's filename without extension. # E.g. `slides = "example-slides"` references `content/slides/example-slides.md`. # Otherwise, set `slides = ""`. slides: example ---
This topic is coming soon !


Extends Event
The MouseEvent object is received by the Item's mouse event handlers item.onMouseDown, Item#onMouseDrag, item.onMouseMove, item.onMouseUp, item.onClick, item.onDoubleClick, item.onMouseEnter and item.onMouseLeave. The MouseEvent object is the only parameter passed to these functions and contains information about the mouse event.


I design to make system & information more accessible & effective. I design websites, poster, maps, interface, process & importantly the whole system.
Need help with Designing?


Welcome!
I enjoy going through the design process of need finding, ideating, prototyping and testing. I find it extremely rewarding being able to start from nothing to creating solutions and learning a lot about problems people face
I enjoy a lot of art forms like painting, poetry and photography. I write a bit of poetry and draw during my free time
You know what they say about music, it's the spice of life:) I enjoy listening to good music. I'm pretty open to different genres, just needs to sound good. I like Afro beats a lot. I sometimes listen to a bit jazz, and reggae
I grew up in Ghana, in a family of 5 and I'm the last of three. I like to draw during my free time, listen to music or enjoy some time sleeping :). Some of my favorite movies and shows are Black Panther, Blackish, God Friended Me, and NCIS
I'm a software developer, who likes to think creatively and is passionate about building impactful and top-quality solutions. I love all things tech and entrepreneurship and I aspire to add value to people's lives through technology.
A selection of my range of work


Real Madrid star Hazard singled out as Mikel's laziest former team-mate
by OmnisportEx-Chelsea midfielder John Obi Mikel has labelled "incredible" Real Madrid winger Eden Hazard the laziest of all his former team-mates.
Hazard and Mikel, now of Trabzonspor, shared the Stamford Bridge dressing room for over four seasons.
The Belgium international arrived in 2012 and went on to make 352 appearances for the club, scoring 110 goals.
In June, he completed a coveted €100million move to LaLiga giants Madrid.
Mikel raved about the 28-year-old's undoubted ability but gave a less positive assessment of his work ethic when asked to name the laziest player he trained alongside.
"Hazard has incredible talent," the Nigerian told beIN SPORTS in Turkey.
"Maybe not as good as [Lionel] Messi, but he can do whatever he wants with the ball at his feet.
"He didn't like to train hard. While we were working he was waiting for us to finish training just standing there. But on Sundays he was always man of the match, it was unbelievable."
Mikel, a Champions League winner with Chelsea, named current Blues boss Frank Lampard the hardest trainer he has seen.
Also check out:Premier League Premier League Table Champions League table


Vintage American Football was organized in February of 2015. The game is based on 1920's football rules and equipment. The goal was to revive the 100 year old football rivalry between the cities of Moline and Rock Island in the Quad Cities.
The Simon Herrera and Chris Zimmerman joined forces with former Augustana coach Jim Barnes and they pitched the idea of a game in Douglas Park to Rock Island Parks and Rec. With their blessing the plans moved forward for a game in late August.
After months of planning the game was on. 500+ fans of 1920's football s filled Douglas Park and watched the two teams play a game that looked similar to how a game would have looked in 1920.
In 2016 Douglas Park again hosted the two teams. The event was a success but temperatures in the 90's kept the attendance down and took a toll on the players. After the game it was decided that in the future the game would be held in late September or early October.
The game in 2017 will be played at the Hauberg Estate in Rock Island. Douglas Park has received some attention and as a result $125,000 has been donated to help improve the park. The area where the game is usually played on will be under repair this fall and not finished in time to host the game.
The pregame will start at 3:00PM and the kickoff will be at 3:30PM. Starting the game at 3:30 will allow for the lights come on and be a part of the atmosphere.
This year the game will be promoted by Rock Island Parks and Rec. Friends of Douglas Park and Friends of the Hauberg Estate will coordinate the effort. We are hoping for our biggest crowd yet!
Plans are being made to close off part of the road around the field for easier access.
Also, Happy Joes Pizza and Bent River Brewing should be back. There will also be a grill set up by Rock Island Parks and Rec.
We are run by volunteers, we would love to have more get involved and offer to help. We currently are looking for anyone who is willing to take pictures or shoot video. Nothing professional just images that you can share with us and that we can use for promoting the game.
Contact us at<EMAIL_ADDRESS>Unfortunately both rosters are full for 2017. We are actually considering adding another game in 2018 or maybe 2 new teams. Please contact us at the email below if you are interested in playing or running another team in the QC Area. We would love to get team in Davenport and Bettendorf.
Contact us at<EMAIL_ADDRESS>Learn More about 1920's football...
1920's football was very different from the NFL of today. Most of the teams were started by local business men or athletic clubs. The rosters were roughly 18 men and the players played both ways (offense and defense).
While many know of the difference, many don't know of the similarities. For example, the teams traveled together on road trips, they took team busses to the field and they signed contracts
The standard player uniform consisted of a jersey top made of thick wool and thick protective canvas pants with pads sewn in for protection.
The helmet was leather and during the teens most were the dog ear type.


Introduction
When creating a new project in Torque 2D, it is important
to know how to adjust your workspace and how the adjustment affects your
workflow. In this tutorial we are going to cover how to change your
design resolution, how to change your camera view, and how changing your
workspace in these ways will affect your project.
This tutorial will be using the stock TutorialBase project file that
comes with the engine. To open that file, launch T2D and click Open
Project. If you are already editing a project, click on File->Open
Project... Once the file browser is open, navigate to the games/TutorialBase folder. Select the project.t2dProj file to begin.
Camera View and Design Resolution
Your camera view is defined in T2D as a box with a thick border
around it. The color is based on your Scene Editor grid color
preferences (Edit->Preferences, Scene Editor tab). Though games can
take up much more space than this square, all that will be visible to
the end-user is what is inside of this square at any given moment (as
shown in Figure 1):
Figure 1
To begin, let's start by dragging in one of the graphics from the
Static Sprites library. I chose to drag in the GarageGames logo (as
shown in Figure 2). As you can see, once I drop the graphic in my scene,
it is automatically resized in the view. This is because of the design
resolution.
The design resolution is the size that T2D is going to assume your
camera view is. When it resizes graphics, it is going to resize them
relative to what the design resolution currently is. By default, the
design resolution is set to 800 x 600 - therefore all graphics that are
dragged into the scene will be sized properly relative to the camera
view.
Figure 2
To access your design resolution, go up to the Edit Menu and choose
Preferences (as shown in Figure 3):
Figure 3
Once you click Preferences, you should be confronted by a dialog that
contains all of your preference settings. You will see three tabs along
the top of the dialog. Click on the tab marked "Scene Editor" (as
shown in Figure 4).
Figure 4
When you click on the Scene Editor tab of your preferences, you should
see Figure 5. About halfway down on the left side of your Scene Editor
preferences is the Design Resolution (as shown in Figure 5). As you can
see, the design resolution defaults at 800 X 600.
Figure 5
Let's change the design resolution to something else so you can see the
effect it has on your workspace. Change your design resolution to 1024 X
768 (as shown in Figure 6).
Figure 6
Now that you have changed the design resolution of your workspace, let's
see what it does to your project. Grab another one of those GarageGames
logos and drop it right next to the one we dragged in their earlier.
Immediately you should notice something: the logo is sized smaller than
it was before (as shown in Figure 7).
Figure 7
As stated above, T2D automatically resizes graphics in relation to the
design resolution. Since the design resolution is 1024 X 768, all of the
subsequent graphics placed in the workspace are going to be smaller.
You should also note that no graphics placed in the workspace before
changing the resolution are affected.
Change your design resolution back to default (800 X 600) and delete the
second logo we created. Now we are going to explore another method of
setting up your workspace: the Camera Tool.
The Camera Tool
The Camera Tool allows users to manually change the size of their
camera view. The Camera Tool is located along the top bar of the
Scene Editor (as shown in Figure 8):
Figure 8
When you click on the Camera Tool, your view zooms out and shows you
your Camera View as a translucent box with resize handles along the
outer edges (as shown in Figure 9). You can resize your view in
many ways:
Figure 9
First, if you click on any resize handle and drag it in any direction,
the camera view will resize around its origin while keeping its default
aspect ratio (as shown in Figure 10).
Figure 10
Second, if you click on any resize handle while holding the
CTRL key, it
resizes the camera view keeping the same aspect ratio while anchoring
the camera view to the opposite handle as you are grabbing (as shown
in figure 11).
Figure 11
Third, if you click any of the resize handles while holding the
SHIFT
key, it resizes the camera view from the center but does NOT keep the
aspect ratio. This gives the user the opportunity to mess up the aspect
ratio of the scene (not recommended) (as shown in Figure 12).
Figure 12
Finally, if you click on any of the resize handles while holding the
SHIFT and CTRL, your camera view will resize freely from an anchor point
opposite the one you grabbed without keeping the aspect ratio (as
shown in Figure 13).
Figure 13
Neither of the last two methods are recommended in most cases since if
you mess up the aspect ratio you will get an interesting, skewed look to
your graphics. However, T2D still allows you to affect the aspect ratio
in case you ever work with an unusual aspect ratio such as those found
on a widescreen monitor, etc.
We now want to make the camera view larger. To do that, use either of
the first two methods to enlarge the camera view to a reasonably larger
size. To save the changes you have made to your camera view, click on
the selection tool (as shown in figure 14) or hit Enter.
Figure 14
Once you have your camera view changed and saved, drag another copy of
the GarageGames logo into the scene to see its effects. Your new graphic
should be larger than your original graphic, due to the relative sizing
of the design resolution (as shown in Figure 15)
Figure 15
Even though we made the camera view cover a much larger area, T2D still
assumes that it represents an 800 X 600 screen and therefore sizes any
newly imported graphics appropriately.
Conclusion
This tutorial covered the basics of setting up a workspace, changing
the camera view and design resolution, and the effect it can have on a
project. As you become more familiar with this aspect of T2D, you will
learn to use the methods outlined above to streamline your workflow and
make your games more efficiently with minimal resize issues. You can
create all of your art for one resolution and have it sized
automatically in relation to your camera view or design resolution. I
hope this tutorial proves useful. Good luck! |


|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
| Method Summary | |
void |
addFactory(PluginFactoryInterface factory)
Registers a new factory in the plug-in manager to process the set of tags provided |
void |
addGenericFactory(PluginFactoryInterface factory)
Registers the generic factory that handles unknown tags in the subscription process |
PluginInterface |
createPluginInstance(java.lang.String tag,
org.w3c.dom.Node subTree)
|
PluginFactoryInterface[] |
getFactoriesList()
Gets the list of all factories registered in the PluginManager |
java.lang.String[] |
getRegisteredTags()
|
void |
removeFactory(PluginFactoryInterface factory)
Registers a new factory in the plug-in manager |
| Method Detail |
public void addFactory(PluginFactoryInterface factory)
factory
- the factory instancepublic void addGenericFactory(PluginFactoryInterface factory)
factory
- the factory instancepublic void removeFactory(PluginFactoryInterface factory)
public PluginFactoryInterface[] getFactoriesList()
public java.lang.String[] getRegisteredTags()
public PluginInterface createPluginInstance(java.lang.String tag, org.w3c.dom.Node subTree) throws PluginManagerException
an
- exception in case the creation is not successfull.
PluginManagerException
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


As I tinkered around with CSS a few days ago, I found myself stumped; I was playing with relative and absolute positioning and couldn't figure out how they were different! It was a rather frustrating experience, but now I'm just excited to use my newfound knowledge to make cleaner, more streamlined sites...beginning with this one!
The static position is the default position value. This means that it is not positioned in any special way, and thus appears in order of the document flow.
When an object is given the fixed position value, this just means that it stays on the exact same area of the page, relative to the browser window no matter how far you scroll down.
When you give an object the relative position value, this basically allows you to move that object relative to it's default or static place on the page. In the images below for instance, the image on the left was given the relative position value, and no other parameters. However, the image on the right was given the relative position value as well as moved 200px to the right of its default location.
Giving an object an absolute position value gives you the ability to move that object anywhere on the page. Just as with the relative element, you can use the attributes top, bottom, left and right to put the object exactly where you want it. The first image below has the values position: absolute, top: 0px, and left: 0px. The second image was given the values position: absolute, top: 250px, left: 300px. Because I did not give my absolute div a parent element with either an absolute or a relative position value, my absolute div defaulted to the html element--that is to say, it is placed relative to the page. As you can see, my absolute div overlapped with some text in the page. This is because this positioning is not affected by any other elements, and does not affect any elements itself.
Just in case that didn't help (or even if it did), I suggest watching this video. It's the single most helpful resource that I have found for differentiating relative and absolute positioning, and I think it would be helpful for you as well!
Happy positioning! :)


Ofori Leads List Of 6 Potential Chiefs Targets?
by Soccer LadumaAccording to Siya sources, Kaizer Chiefs are believed to be keeping a close eye on Richard Ofori, although there are at least five other players currently being linked to the Soweto side.
Amakhosi made just five new additions in the previous July/August transfer window, while releasing more than 10 players from their books in the past year.
Despite Chiefs currently flying high this season, as they sit comfortably at the top of the log, indications are that they could still be looking to bolster their squad further, specifically, in their goalkeeping department.
Read more: 'Chiefs Were Well Rested But They Got Cramps'
Siya sources have indicated that Chiefs are keeping a close eye on Maritzburg United’s Richard Ofori, all this while both Itumeleng Khune and Daniel Akpeyi will see their contracts come to an end on June 30, 2020.
However, here are five other players also being linked with a potential move to Chiefs.
Thabang Monare:
Siya sources have indicated in the past months that Chiefs were showing interest in Monare and with the player having rejected Bidvest Wits’ new contract offer, the Soweto side could look to revisit their interest in the player.
Sifiso Mbhele:
It is believed that Chiefs are one of the many clubs monitoring Mbhele from Highlands Park, with his performance this season not gone unnoticed.
Tshwarelo Bereng:
Chiefs were linked to Bereng in the past and according to Siya sources, Amakhosi is once again monitoring the midfielder.
Reyaad Pieterse and Ronwen Williams:
Both Pieterse and Williams made it on the list of potential goalkeeper targets for Amakhosi in the past months, with Siya sources recently indicating that while Chiefs are on the hunt to bolster their goalkeeping department, the Soweto side could rehash their interest in Pieterse.
Who do you think Amakhosi should sign in the January transfer window? Let us know in the comment section below.
Post Selfie’s On Soccer Laduma’s Social Media App & Earn Airtime and more! Download Now


Your browser does not support the HTML5 canvas tag.
Upload an image with a freewheel program inside. See
bootstrap
if you don't have one.


<%= @route.name %>
Locations
<% @route.locations.each do |location| %>
- <%= link_to "#{location.name}", location_path(location)%>
<% end %>
<%= link_to "Edit", edit_route_path(@route), :class => "btn btn-warning" %>
<%= link_to "Home", locations_path, :class => "btn btn-success" %>
<%= link_to "Delete", route_path(@route),
:data => {:confirm => "Are you sure?",
:method => "delete"},
:class => "btn btn-danger" %>


You have already learnt about the solar system. Now, test your knowledge by playing AstRoamer: Planet Trek.
Every planet in our solar system is made up of various elements and chemical compounds.
In this activity, you must find the elements and compounds using the clues given to you. The more items you collect, the better your chance of winning.
Are you ready?
Click the Rules button to read the rules of the activity.
Then, click Start to begin.


To develop and pursue a high technology oriented career that will provide an environment to learn, and contribute for the strategic advantage of businesses through relentless pursuit of perfection learning.
Throughout my 4 years experience, I have been contributing as a core team member in Marketing. Responsible to manage company's website design. Analyzing real time data to conduct A/B testing. Redesigning and development of website on scheduled periods. Designing Emailers and Landing Pages with Hubspot. Designing marketing and sales collaterals (digital and print), banners, social media posts, editing webinars & product videos.
Worked for 3 months as an Trainee- Designer for 3 months. I found an opportunity to serve as a full time employee and continued in the same position.
Apart from being a web developer, I enjoy most of my time being outdoors. In the winter, I am an avid skier and novice ice climber. During the warmer months here in Colorado, I enjoy mountain biking, free climbing, and kayaking.
When forced indoors, I follow a number of sci-fi and fantasy genre movies and television shows, I am an aspiring chef, and I spend a large amount of my free time exploring the latest technology advancements in the front-end web development world.


Subcontractor declaration
You need to make a declaration even if you do not use subcontractors.
You must also update your declaration if your subcontracting arrangements change during the year.
The subcontracting guidance collection provides more information about subcontracting.


TPolyFillType = (pftEvenOdd, pftNonZero, pftPositive, pftNegative);
Graphics32 currently only supports the two most widely used polygon filling rules for polygon rendering - EvenOdd (aka Alternate) and NonZero (aka Winding). However, while Positive and Negative filling rules are not supported by the renderer, the TClipper class used in clipping operations does accommodate them (see TClipper.Execute).
For more details about polygon filling rules see:
Polygon filling rules in SVG
Winding Numbers and Winding Rules in OpenGL


{% include "holofood/components/pagination.html" %}
Analysis summaries
Documents written by HoloFood partners and collaborators relevant to the {{ catalogue.title }} Genome Catalogue
{% for analysis_summary in catalogue.analysis_summaries.all %}
{% include "holofood/components/analysis_summary_card.html" with analysis_summary=analysis_summary %}
{% endfor %}
{% include "holofood/components/atoms/possibly_empty_state.html" with items=catalogue.analysis_summaries empty_text="No summaries mention this catalogue" colspan=3 %}


NVAPI Reference Documentation
|
|
Release 343: September 30
|
#include <nvapi.h>
String name of the Application.
Select this application only if this file is found. When specifying multiple files, separate them using the ':' character.
Windows 8 style app.
Is the application userdefined/predefined.
Indicates the name (if any) of the launcher that starts the Application.
Reserved. Should be 0.
UserFriendly name of the Application.
Structure Version.


Project No Longer Human
Solve the following captchas in order to gain access:
Captcha 1: Traditional Text Captcha
Submit
Captcha 2: Audio Captcha
Play the code
Generate New code
Submit
Captcha 3:
Unlock more by sending money to developers
Button below to send...
Send Money
Copyright AsakiWaki 2021 ©


Frequently Asked Questions
These are some of the most-asked questions we get on a day-to-day basis. If you have a question, be sure to check this page and see if we've answered it already. If you'd like to suggest an entry to this page, why not submit a pull request on GitHub?
In our opinion, yes it is. It's a very powerful language, but it will force you to write readable code and it's designed to allow you to write code very quickly, without you having to keep your head in a book for hours on end.
Python is used as a teaching language in many schools, colleges and universities - but it's a very capable language that is suitable for many real-world tasks as well, and it's only gaining in popularity!
How you get started with Python is very much going to depend on your prior programming experience. If you're already an experienced programmer, you should should have no trouble following pretty much any guide out there - but for true beginners, we recommend full-on tutorials such as Automate the Boring Stuff with Python.
For more information on that and other resources, feel free to take a look at our resources page.
Generally, we're always going to recommend that people new to Python start with Python 3. There's a few reasons for this:
- Python 3 is the latest-and-greatest version. It gets all the new features and is in active development.
- Python 2 lacks many features available in Python 3 and is mechanically different in a few important areas.
- Python 2 is being sunset and will reach its end of life in 2020. It will not be maintained past 2020. There will be no Python 2.8.
- Most libraries now fully support Python 3, and many are dropping or have dropped support for Python 2.
The only reason a user may want to stick with Python 2 is if they are stuck working a job with a legacy codebase that cannot or will not be updated to work with Python 3. To users in those situations: Commiserations.
If you're a beginner, you should not be using an IDE. This is because IDEs do a lot of basic things automatically where a beginner should learn to do things themselves - for example, some IDEs can generate huge chunks of code or catch beginner errors without you even noticing you'd made a typo.
If you're not a beginner or you decide to try an IDE regardless, we heavily recommend PyCharm. This is a well-known IDE which is entirely in a league of its own, and has a very capable free "community" edition that will serve most people's needs.
We've listed off some of our favourite editors and IDEs on our resources page. Feel free to take a look if you're not sure what's out there.
By the way, we host quarterly code jams for the users of our community, and the prize for winning it is a one-year PyCharm Pro license - sponsored by JetBrains. If you like PyCharm and are thinking of grabbing a copy of Pro, why not join in?
Learn Python the Hard Way, Zed Shaw's most infamous work, is largely considered by the Python community to be poor-quality and misleading in general. This is due to numerous issues with the material, which include being extremely opinionated and sometimes condescending, out of date, confusing and even wildly incorrect in some places.
Learners that have used Learn Python the Hard Way as their primary learning material often find themselves confused and asking questions that really don't make that much sense - it's also been observed that learners in this position tend to suffer heavily from the infamous XY Problem.
For more information on why you should avoid Learn Python the Hard Way, you can have a look at this article on the sopython wiki, which enumerates the most egregious issues with it.
That's not a question, but there's a few things you can look at to try to solve this.
- If you're on Windows, the python installer has an option labelled "Add to PATH" - Make sure you check this when you install python. If you forgot to do that the first time, then the easiest way to solve this problem is to reinstall Python
-
If you're on Windows, there's a good chance that
python
andpip
aren't what you actually need to run! Some options you could try includepy -3
,python3
orpython36
- if one of these works, then you should be able to usepy -3 -m pip
,pip3
orpip36
as well -
If you're on a Mac, Python comes with the OS - however, it's quite likely to be
an old version. You can solve this by using Homebrew
to install a more recent version of Python, which should be made available as
python3
When finding yourself unable to import something in Python, you can follow these steps to figure it out:
- Is the module part of Python's standard library?
-
If not, have you installed it? If the module is on
PyPi,
you can install it using pip in a terminal:
pip install module_name
-
If you think you've installed it, try upgrading it with pip in a terminal:
pip install -U module_name
- Make sure there were no errors during installation - If all else fails, make sure you've read the module documentation fully, and ensure that you're following it correctly
- If you're sure that you've done everything correctly, you may have found a bug - come and chat to us, and we might recommend that you report your problem to the developer
Python Enhancement Proposal #8 is known as the official Python style guide. It sets out a lot of very clear guidelines which help you structure your code.
One of the most useful things you can do when writing your code is to follow a style guide. It makes it easier to read your code overall, but a consistent style guide is very important as it means that everyone that contributes to your project is writing code in the same style - meaning everyone will be able to read it. As PEP itself reads: "A foolish consistency is the hobgoblin of little minds".
PEP8 isn't the only style guide available to you, but it is the most widely used and best-understood of them - and for that reason, we do recommend you use it. That said, Google's Python Style Guide is also widely used by Google engineers.
Python is a very versatile language, and a real-life application using it can take many forms. That said, we do plenty of Python development here ourselves. If you're curious about this question, then why not take a look at our projects?