OSDN Git Service
Raphael Moll [Tue, 23 Nov 2010 02:43:43 +0000 (18:43 -0800)]
Fix potential NPE when closing Eclipse/ADT
Seems like it was trying to finish a build and closing
the plugin ADT at the same time. How's that even possible?
In any case I've never seen that before and I was in
debug mode, so I bet it's a rare race condition.
SDK Bug
3222178
Change-Id: I28a9bdfcbe56e2a6b73eafb5cadea611c5177f7f
Raphael Moll [Sat, 20 Nov 2010 04:34:42 +0000 (20:34 -0800)]
Merge "Fix the other SwtUtilsTest methods under Windows."
Raphael Moll [Sat, 20 Nov 2010 02:44:43 +0000 (18:44 -0800)]
Fix the other SwtUtilsTest methods under Windows.
Fixes the following issues:
- All methods must use the palette mask to compare RGB values.
- Use a non-trivial default color for testing. The previous
choice of 0xFF00FF00 would not allow detecting RGB <-> BGR
mixups and the 0xFF alpha mask prevented from noticing the
fill operation was pre-multiplying the colors.
- Assert the converted image as the expected transparency type.
Change-Id: I1dc7518a7d7000bce75e1c4166a9921ba40a43cb
Raphael Moll [Sat, 20 Nov 2010 01:49:55 +0000 (17:49 -0800)]
Merge "Fix SwtUtils conversion for no-alpha case."
Raphael Moll [Sat, 20 Nov 2010 00:14:06 +0000 (16:14 -0800)]
Fix SwtUtils conversion for no-alpha case.
Change-Id: I275b526670ca6e60cfc4f8749631dff2ef240b96
Raphael Moll [Sat, 20 Nov 2010 00:26:31 +0000 (16:26 -0800)]
Merge "GLE: Remove obsolete IGraphicalLayoutEditor interface."
Raphael Moll [Fri, 19 Nov 2010 21:33:41 +0000 (13:33 -0800)]
GLE: Remove obsolete IGraphicalLayoutEditor interface.
Change-Id: I96f929ce9386e88f80d15195b2ff6a498e374554
Xavier Ducrohet [Sat, 20 Nov 2010 00:15:10 +0000 (16:15 -0800)]
Merge "ADT: support for editing embedded layouts."
Xavier Ducrohet [Fri, 19 Nov 2010 23:38:35 +0000 (15:38 -0800)]
ADT: support for editing embedded layouts.
This is a very first rough changeset. The context in which the layout
is edited is hardcoded until we have the UI for it.
The basics are the following:
- if there's a context, don't pass the parser on top of the model to
the layout lib.
- instead create a KXml based parser that will return the model-based
parser when queried for a custom parser (if the layout name matches the
file being edited).
Change-Id: I2d106def9c64e82ab50c8fae96cb050338422a85
Xavier Ducrohet [Fri, 19 Nov 2010 22:31:29 +0000 (14:31 -0800)]
Merge "ADT/Layoutlib: update API to control how layout expands."
Xavier Ducrohet [Fri, 19 Nov 2010 21:54:48 +0000 (13:54 -0800)]
ADT/Layoutlib: update API to control how layout expands.
Previous API was a single on/off to let the layouts expand at
render time depending on how much space they needed.
The new API can now control expansion is horizontal and/or
vertical (or not at all)
Basic implementation in the editor, with a manual detect of
"ScrollView" as top element. We should make the ViewRule handle
this somehow.
Change-Id: Idc503bc0d1d3df98fbf01cc84625952ca55a8afb
Tor Norbye [Fri, 19 Nov 2010 21:02:51 +0000 (13:02 -0800)]
Merge "Add per-view custom initialization logic"
Tor Norbye [Mon, 15 Nov 2010 23:35:15 +0000 (15:35 -0800)]
Add per-view custom initialization logic
This changeset adds support for adding custom-logic to initialize
views, both to add children and default attributes and to customize
layout attributes when added to a new parent.
First, there is a new "onCreate" hook which is called to notify a view
rule that an instance of its corresponding view has been created. This
lets the ViewRule perform custom initialization of the object. The
ViewRule is told what type of insertion occurred, such that it can
distinguish between a newly created view, a view that is the result of
a copy/paste, and a view that is part of a move operation.
The changeset adds a number of new ViewRules which take advantage of
this:
- A TabHost rule creates the various skeleton children that are
required, such as a TabWidget child with id @android:id/tabs and a
FrameLayout child with id @android:id/tabcontent
- A DialerFilter rule creates the mandatory EditText children ("hint"
and "primary")
- The HorizontalScrollView rule creates a horizontal LinearLayout child
- The ImageButton and ImageViewButtons initialize the "src" attribute
to a sample image
- The MapViewRule initializes the apiKey attribute
In addition, views are also notified when a new view is added as a
child, such that they can perform additional customizations, in the
form of an "onInsert" event.
The most important application of this is LinearLayoutRule, which uses
this to set reasonable defaults for the layout_width and layout_height
parameters. It uses metadata (which is currently built into ADT but
would ideally migrate into our XML config files) to determine whether
a given child prefers to grow horizontally, grow vertically, both, or
neither, depending on the surrounding parent context. For example, an
EditText will default to filling the parent width if it is in a
vertical LinearLayout, but it will not grow vertically in a horizontal
linear layout. And so on. Various other rules also use the onInsert
event to tweak children attributes. A ScrollView will for example
always initialize its single child to match parent.
Views can now also add plain menu items into the context menu, and the
TableViewRule adds one such action: "Add Row", which appends a new row
into the table.
The Palette Preview code also invokes these creation hooks, such that
if you for example drag a DialerFilter it can properly render since
the mandatory children are created up front. This required various
changes to the preview code to be able to handle XML edits by the
rules.
Finally, this changeset includes various other misc changes that I
performed at the same time:
- Removed SWT dependency from the ViewRule classes (SWT Rectangle use
in Rect)
- Fixed AbsoluteLayout unit test (issue
3203560)
- Fixed positioning of the preview outline in LinearLayout when only
one of the dimensions are clipped due to a smaller target layout
Change-Id: I5956fe4e7a31a20b8dd2f9d9b0c1f90e2f75d68a
Xavier Ducrohet [Fri, 19 Nov 2010 20:34:42 +0000 (12:34 -0800)]
Merge "Fix PDT. Extension class of toolsLocator is now ToolsLocator"
Xavier Ducrohet [Fri, 19 Nov 2010 19:19:19 +0000 (11:19 -0800)]
Fix PDT. Extension class of toolsLocator is now ToolsLocator
Change-Id: Ic2b65e07755339fc277392e4acdfe1e880a83a3d
Raphael Moll [Fri, 19 Nov 2010 04:03:46 +0000 (20:03 -0800)]
Merge "Cleanup and comment the refresh code in GLE2."
Raphael Moll [Fri, 19 Nov 2010 04:03:36 +0000 (20:03 -0800)]
Merge "Cleanup GRE preload."
Raphael Moll [Fri, 19 Nov 2010 03:43:07 +0000 (19:43 -0800)]
Merge "Remove non-api references from AttrsXmlParser."
David Turner [Fri, 19 Nov 2010 00:28:41 +0000 (16:28 -0800)]
Merge "Fixed a problem that physical address is inconsistent."
Raphael Moll [Thu, 18 Nov 2010 22:55:17 +0000 (14:55 -0800)]
Cleanup and comment the refresh code in GLE2.
Change-Id: I95a922c463992600edfc8c25edfc688dc38f79bd
Raphael Moll [Thu, 18 Nov 2010 22:44:09 +0000 (14:44 -0800)]
Cleanup GRE preload.
GRE used to preload the groovy BaseView rule to improve
the first selection speed. We don't need that now that we
switched to a non-groovy engine.
Change-Id: Ib29272f28df6285137d62c45441cd9ac72efd10f
Raphael Moll [Thu, 18 Nov 2010 21:30:53 +0000 (13:30 -0800)]
Remove non-api references from AttrsXmlParser.
Change-Id: Ic139e6f942e835dda4b7ef0303556aef014a60d3
Xavier Ducrohet [Thu, 18 Nov 2010 20:25:11 +0000 (12:25 -0800)]
Merge "ADT/GLE: call LayoutScene.dispose() when needed."
Xavier Ducrohet [Thu, 18 Nov 2010 20:03:42 +0000 (12:03 -0800)]
ADT/GLE: call LayoutScene.dispose() when needed.
Change-Id: I95819d95827164d3e57dc179d3f321d26a649599
Raphael Moll [Thu, 18 Nov 2010 04:53:14 +0000 (20:53 -0800)]
Merge "Remove AdtPlugin dependency from AttrsXmlParser."
Raphael Moll [Thu, 18 Nov 2010 00:03:09 +0000 (16:03 -0800)]
Remove AdtPlugin dependency from AttrsXmlParser.
The AdtPluin was used just for logging. Instead the
AttrsXmlParser takes an ILogger (AdtPlug implements
ILogger and can be used directly in unit tests too).
For unit tests there is a new StdSdkLog convenience
class that prints to stdout/stderr (formerly MockStdLogger
from the Sdk Manager was doing that.)
Change-Id: I658af61d04efb19ad6e3bf9c0bf471452372885a
Xavier Ducrohet [Thu, 18 Nov 2010 00:07:46 +0000 (16:07 -0800)]
Merge "Update ADT changelog with current changes."
Xavier Ducrohet [Wed, 17 Nov 2010 23:17:59 +0000 (15:17 -0800)]
Update ADT changelog with current changes.
Change-Id: Id02026a70882d260855b283693ab93c9810fa2e3
Xavier Ducrohet [Wed, 17 Nov 2010 22:28:18 +0000 (14:28 -0800)]
Merge "ADT/GLE2: Add callback before the rendering target changes."
Xavier Ducrohet [Wed, 17 Nov 2010 21:39:03 +0000 (13:39 -0800)]
ADT/GLE2: Add callback before the rendering target changes.
Change-Id: If02fd18c39b06042615735b55190e9f03fef5b19
The Android Open Source Project [Wed, 17 Nov 2010 20:19:28 +0000 (12:19 -0800)]
merge from tools_r8
Change-Id: I7e81a594ba2f83e787c288709d14d2b97d89074e
Xavier Ducrohet [Wed, 17 Nov 2010 20:08:09 +0000 (12:08 -0800)]
Merge "Fix HV.bat for swt layout issue." into tools_r8
Xavier Ducrohet [Wed, 17 Nov 2010 20:01:33 +0000 (12:01 -0800)]
Merge "ADT/GLE: Platform selection when rendering layouts."
Raphael Moll [Wed, 17 Nov 2010 18:24:38 +0000 (10:24 -0800)]
Fix HV.bat for swt layout issue.
SDK Bug
3185449
Change-Id: I88dfaeb287fdef5cf82a0bc3da286c6c4493f910
Raphael Moll [Wed, 17 Nov 2010 03:22:59 +0000 (19:22 -0800)]
Merge "ADT: Extract AttrsXmlParser in com.android.ide.common"
Xavier Ducrohet [Mon, 15 Nov 2010 21:50:40 +0000 (13:50 -0800)]
ADT/GLE: Platform selection when rendering layouts.
Change-Id: Iabbd49cdd52419b947b83fb84f9fb3a5d4576471
Raphael Moll [Tue, 16 Nov 2010 21:37:47 +0000 (13:37 -0800)]
ADT: Extract AttrsXmlParser in com.android.ide.common
This is a pure-refactoring CL that moves AttrsXmlParser
into an ide.common.resources.platform package. In a next CL,
the parser should be cleanup to remove some references to
external classes (e.g. adtplugin is only used for logging so
it will become an ILog reference.)
The goal of the resources.platform package is to allow other IDEs
to parse the manifest schema. An utility class would be provided
here that would then be used by AndroidTargetParser. The rest of the
data parsing (widgets, resources, etc.) is a non-goal. Maybe later.
Change-Id: I4fb8eb5d168b75ef8bfab57d0b2883aea85b6167
The Android Open Source Project [Tue, 16 Nov 2010 17:57:16 +0000 (09:57 -0800)]
merge from tools_r8
Change-Id: I8bb7cf608bda93ea3f13182a5dfe9f88dcc4bbb1
Jean-Baptiste Queru [Tue, 16 Nov 2010 17:50:05 +0000 (09:50 -0800)]
Merge "ADT tools location: traceview is a .bat" into tools_r8
Raphael Moll [Sat, 13 Nov 2010 20:04:10 +0000 (12:04 -0800)]
ADT tools location: traceview is a .bat
This prevents adb from starting under windows, since
adt is trying to verify the presence of traceview.exe
when it's actually traceview.bat.
Change-Id: I259d90adb17b0b91beb114319cf88392812fc264
Xavier Ducrohet [Tue, 16 Nov 2010 00:30:17 +0000 (16:30 -0800)]
Merge "Add preferences to the list of not proguarded classes."
Tor Norbye [Mon, 15 Nov 2010 23:34:15 +0000 (15:34 -0800)]
Merge "Improvements to LinearLayout feedback"
Tor Norbye [Mon, 15 Nov 2010 23:04:31 +0000 (15:04 -0800)]
Improvements to LinearLayout feedback
When you have a small and empty linear layout, and you drag something
larger (such as a button) into it, the drop feedback is a bit
confusing: The drop feedback rectangle is larger than the linear
layout, so the bounds are outside the layout. This changeset addresses
this by forcing the bounds of the drop preview to be at most the
dimensions of the LinearLayout itself.
Second, the fix I applied last week to show the last insert position,
did not work in all cases - in particular when the drag originates
outside the canvas itself. To determine if we are inserting at the
last position, look at the number of target node children, rather than
the number of potential insert positions, since in some cases the
number of insert positions will be smaller than the number of
children.
Finally, there was a theoretical bug that if one of the dragged
elements did not non-zero bounds, then the insert position would be
wrong. This is also fixed by this changeset.
Change-Id: Ia30e99f7a3aa45b8091855b69aaef86ec3699405
Xavier Ducrohet [Mon, 15 Nov 2010 22:14:55 +0000 (14:14 -0800)]
Add preferences to the list of not proguarded classes.
Change-Id: Ib7db435bb640b3a3feaa0534ccc77b6f9eda0800
Raphael Moll [Mon, 15 Nov 2010 22:30:39 +0000 (14:30 -0800)]
Merge "Exclude BackupAgentHelper classes from Proguard."
Tor Norbye [Mon, 15 Nov 2010 22:28:47 +0000 (14:28 -0800)]
Merge "Add drop shadow to dragged items"
Xavier Ducrohet [Mon, 15 Nov 2010 22:21:19 +0000 (14:21 -0800)]
Merge "Update the Eclipe plug-ins/features version number."
Xavier Ducrohet [Mon, 15 Nov 2010 22:00:57 +0000 (14:00 -0800)]
Update the Eclipe plug-ins/features version number.
Change-Id: Ib5f49d91506de5e218d80af1d05d06ba49155cb6
Tor Norbye [Mon, 15 Nov 2010 17:55:52 +0000 (09:55 -0800)]
Add drop shadow to dragged items
Add in a drop shadow to items dragged from the palette. The primary
reason we need this is that some views (in some themes) only render
light content on top of a transparent background, which makes them
nearly impossible to see on a gray background (e.g. over the palette,
when you initiate the drag). The drop shadow helps add contrast. It
also makes the drag look better since it helps the drag preview image
stand out from the background and visually appear to be lifted on top
of it.
Since we're doing more image processing now, I moved the existing
non-SWT image manipulation methods into a separate ImageUtils class.
This changeset also fixes the way we pick the color to crop out when
using older layout libraries (without transparency support). We now
pick a pixel closer to the bounds of the rendered view such that we
for example can handle themes like the dialog theme.
Change-Id: Ifcbb840ef715bf26a9609f6996a4f136de5ca754
The Android Open Source Project [Mon, 15 Nov 2010 21:21:56 +0000 (13:21 -0800)]
merge from tools_r8
Change-Id: I7eb330edd8f5fdb70b54ad61e773071a46131984
Xavier Ducrohet [Mon, 15 Nov 2010 20:56:42 +0000 (12:56 -0800)]
Merge "ADT tools location: traceview is a .bat" into tools_r8
Xavier Ducrohet [Mon, 15 Nov 2010 20:57:05 +0000 (12:57 -0800)]
Merge "Use env var com.android.ddms.bindir for ddms."
Tor Norbye [Mon, 15 Nov 2010 19:39:04 +0000 (11:39 -0800)]
Merge "Fix drag image mouse coordinate handling"
Raphael Moll [Mon, 15 Nov 2010 19:30:44 +0000 (11:30 -0800)]
Exclude BackupAgentHelper classes from Proguard.
To use the Backup API in Froyo, an app needs to typically
extend this helper class and the class is only referenced
from the AndroidManifest.xml, so ideally we should exclude
such classes from Proguard by default.
Change-Id: I690220d2e89a8ff6d0664be93dad55da8b7b66c2
Tor Norbye [Mon, 15 Nov 2010 19:24:03 +0000 (11:24 -0800)]
Fix drag image mouse coordinate handling
Instead of processing drag events using the top left corner of the
drag image, use the mouse cursor coordinate, and fix the absolute
layout rule to compute the top left corner instead.
Change-Id: I4d5096bfd04ac0abb2148196ac7e6d9d52797712
Raphael Moll [Sat, 13 Nov 2010 20:04:10 +0000 (12:04 -0800)]
ADT tools location: traceview is a .bat
This prevents adb from starting under windows, since
adt is trying to verify the presence of traceview.exe
when it's actually traceview.bat.
Change-Id: I095c9f9d992c0a888eede6b1d585a683d0f8f196
Raphael Moll [Sat, 13 Nov 2010 18:59:21 +0000 (10:59 -0800)]
Use env var com.android.ddms.bindir for ddms.
The env var is used if the system property is not defined,
which is convenient to start ddms in debug mode from Eclipse.
Change-Id: I2a33c12399c703cf3194e2e67f39562ab0d59bd9
Tor Norbye [Mon, 15 Nov 2010 15:18:56 +0000 (07:18 -0800)]
Merge "Use view bounds to speed up image cropping"
Tor Norbye [Sat, 13 Nov 2010 00:29:08 +0000 (16:29 -0800)]
Use view bounds to speed up image cropping
Use the view bounds from the layout result as an initial cropping
size. This saves us from looking at a lot of empty pixels when we
render small views. This also means we can attempt rendering a larger
surface for the preview, which makes accidentally cropping large views
less likely.
(Also fix a couple of other suggestions from previous commit)
Change-Id: I9215f00db14adc42950897637e9f66aa921d484e
Raphael Moll [Sat, 13 Nov 2010 03:06:38 +0000 (19:06 -0800)]
Merge "GLE: Yet another reference to event.offsetX/Y."
Raphael Moll [Sat, 13 Nov 2010 03:06:24 +0000 (19:06 -0800)]
GLE: Yet another reference to event.offsetX/Y.
Change-Id: I13eeb5ed05a2f62d6afeb7009d934bd60f6f5cfd
Raphael Moll [Sat, 13 Nov 2010 02:01:34 +0000 (18:01 -0800)]
Merge "Fix Build: DragSourceEvent has no offsetX/Y in SWT 3.4"
Raphael Moll [Sat, 13 Nov 2010 02:01:13 +0000 (18:01 -0800)]
Fix Build: DragSourceEvent has no offsetX/Y in SWT 3.4
Change-Id: I0edf5ed0d6bcfaa8de679203a2bb1c9beb67cc12
Raphael Moll [Sat, 13 Nov 2010 00:32:20 +0000 (16:32 -0800)]
Merge "Win SDK: Split the win-sdk makefile and script into 2 parts."
Tor Norbye [Fri, 12 Nov 2010 23:39:27 +0000 (15:39 -0800)]
Merge "Preview items on palette drags"
Xavier Ducrohet [Fri, 12 Nov 2010 22:57:42 +0000 (14:57 -0800)]
Merge "Update ViewInfo in the layoutlib API."
Tor Norbye [Thu, 11 Nov 2010 02:03:07 +0000 (18:03 -0800)]
Preview items on palette drags
This checkin renders previews of Android views as you drag them from
the palette, using the current theme settings you have for the
associated editor. If you are using version 5 or later of the layout
library, you get full alpha-blending on the rendered views (so for
example in an analog clock you see right through it), and on older
version it simply crops out the edge color.
The preview image is semi-translucent, and the image is centered under
the mouse pointer. The drag feedback operations all relate to the top
left corner of the dragged item, so they are passed in the mouse
cursor minus the delta to the top left corner of the image.
The size of the preview is also used to provide bounds for the drag
feedback, such that we can show a preview rectangle rather than just
the insert point over layouts that support drop feedback.
Some views can't be rendered (e.g. QuickContactBadge), and some views
don't have any pixels painted (e.g. all the empty layouts), and in
that case we fall back to showing the palette item itself (the icon
and label) as you're dragging.
There's also a new utility class for SWT common utilities, like image
conversion.
Change-Id: I315c2dd733317bbada8dae89f57280ced2d7bb51
Tor Norbye [Fri, 12 Nov 2010 05:06:41 +0000 (21:06 -0800)]
Merge "LinearLayout guide fixes"
Xavier Ducrohet [Fri, 12 Nov 2010 02:17:37 +0000 (18:17 -0800)]
Update ViewInfo in the layoutlib API.
- support for View and LayoutParams
- support for default property value map.
Change-Id: I70028710b1f76329a8bd501428fbd68a14fafa1e
Raphael Moll [Fri, 12 Nov 2010 00:03:07 +0000 (16:03 -0800)]
Win SDK: Split the win-sdk makefile and script into 2 parts.
The main makefile+scripts to build the Windows SDK is still
in development/build/tools. However it defers to a new
matching set of files here in sdk/build to build and
package things that depend on the sdk.git or external/qemu.git.
This will make it easier for us to prepare SDKs based on
a tools_rN branch that isn't cut at the same time than the
platform branch.
This is a multi-part changeset. The other part is in
development.git.
Change-Id: Ic94d261b16ad595101c6f83cd77055715b45a622
The Android Open Source Project [Fri, 12 Nov 2010 01:52:26 +0000 (17:52 -0800)]
merge from tools_r8
Change-Id: Ife4981cc78290d77662064cd3f6f9317f45a29ec
Xavier Ducrohet [Fri, 12 Nov 2010 01:47:27 +0000 (17:47 -0800)]
Merge "Change the adbLocation ddms extension to provide more tools location." into tools_r8
Tor Norbye [Fri, 12 Nov 2010 00:22:21 +0000 (16:22 -0800)]
Merge "Fix issue 12251: double click handling"
Xavier Ducrohet [Thu, 11 Nov 2010 23:49:31 +0000 (15:49 -0800)]
Change the adbLocation ddms extension to provide more tools location.
Previously DDMS used the adb location to find the location of other tools,
but adb moved to a different tool folder.
adbLocator extension changed to toolsLocation and provide explicit
locations for all the tools DDMS cares about. This way the logic
of the tools location is only in ADT instead of being duplicated
in DDMS.
Change-Id: I87f19c7705cb822dc793264f11e680ba09eb7f40
Tor Norbye [Fri, 12 Nov 2010 00:07:21 +0000 (16:07 -0800)]
LinearLayout guide fixes
When we have bounds for the dragged items, we show a preview rectangle
where the item will appear after the drop. We show this rectangle
midway between the two siblings that share the insert
position. However, when you are inserting *after* the last item in the
LinearLayout, there is no reason to show the item midway, since at
this point nothing below the insert position needs to be shifted
down. This checkin changes this such that for the last insert
position, we show the rectangle fully below the insert line (or to the
right of it in case of a horizontal layout).
This changeset also fixes a bug where the last (available, not active)
dropzone would not be shown on a palette drag.
Change-Id: If449b43582e072c9e0ad6d7741afbe8e845e8df9
Tor Norbye [Thu, 11 Nov 2010 23:27:11 +0000 (15:27 -0800)]
Fix issue 12251: double click handling
Surprisingly, SWT will deliver a double click event even if you click
button 1 then 3 in rapid succession. This changeset ensures that only
a double click on button 1 warps to XML.
Change-Id: I2b470e2dea5bdb4c9240c9304650ca1c7403db84
Xavier Ducrohet [Thu, 11 Nov 2010 22:45:02 +0000 (14:45 -0800)]
Merge "Rename layoutlib_utils into ide_common."
Xavier Ducrohet [Thu, 11 Nov 2010 20:44:46 +0000 (12:44 -0800)]
Rename layoutlib_utils into ide_common.
Change-Id: Id243fe66e2ce577bc821ca454bca18444ebb5e7d
Xavier Ducrohet [Thu, 11 Nov 2010 20:16:25 +0000 (12:16 -0800)]
Merge "Make ADT use the new layoutlib API."
Xavier Ducrohet [Thu, 11 Nov 2010 00:18:58 +0000 (16:18 -0800)]
Make ADT use the new layoutlib API.
ADT now exclusively use the new API.
The older platforms that still use the old API are
accessed through a compatibility layer provided by the class
LayoutBridgeWrapper that converts the old to the new API (both
input and output).
The wrapper and the loading code for the bridge have moved
to layoutlib_utils, but into the ide.common package.
Layoutlib_utils is to be renamed ide-common later.
.sdk.LoadStatus has moved into .ide.common too since
it's used by the bridge loading code. As we'll move
more code into ide-common it's ok to have it there anyway.
Also did some minor fix to the API:
- missing implementation of ViewInfo
- Made a singleton for SUCCESS state of SceneResult.
Change-Id: I5e7130ca03b92ad71dc9c293b2ffc40566df645c
Xavier Ducrohet [Thu, 11 Nov 2010 02:04:31 +0000 (18:04 -0800)]
Merge "Improvements to the new Layoutlib API."
Tor Norbye [Thu, 11 Nov 2010 01:33:11 +0000 (17:33 -0800)]
Merge "Refactor to make model rendering reusable"
Tor Norbye [Thu, 11 Nov 2010 01:05:01 +0000 (17:05 -0800)]
Refactor to make model rendering reusable
This changeset refactors the code in GraphicalEditorPart a bit to make
the part which renders a model into an image reusable. This will be
used by an upcoming changeset to provide previews of palette items as
you drag them.
The refactoring is straightforward, even though the diffs
unfortunately don't show it. I basically split up the large
recomputeLayout() method into smaller separate chunks (validating the
current file, validating the model and validating the sdk and looking
up the bridge) and added a new render method which can take just a
model (separate from the editor's own model) and render it.
Change-Id: I96603c4beb2d56d36416cd2b6448c87dd306217c
Xavier Ducrohet [Wed, 10 Nov 2010 22:30:18 +0000 (14:30 -0800)]
Improvements to the new Layoutlib API.
Move to classes instead of interfaces so that the layoutlib
API code can provide default implementation.
This will reduce the testing on the ADT side about whether a method
is present for the current API level or not.
Also moved all the parameters of startLayout (actually renamed createScene)
into a SceneParams class.
Change-Id: I58389cd1bed9e79f6825b7c4e5a79206496ca439
Xavier Ducrohet [Wed, 10 Nov 2010 18:34:03 +0000 (10:34 -0800)]
Merge "Minor update to the layoutlib API."
Xavier Ducrohet [Wed, 10 Nov 2010 03:02:41 +0000 (19:02 -0800)]
Minor update to the layoutlib API.
Tor Norbye [Wed, 10 Nov 2010 00:38:18 +0000 (16:38 -0800)]
Merge "Add transient visibility mode for empty containers"
Tor Norbye [Mon, 8 Nov 2010 19:21:24 +0000 (11:21 -0800)]
Add transient visibility mode for empty containers
When you add a new container, such as a LinearLayout, it is usually
invisible. The reason for this is that an empty layout has 0 width and
0 height. There are two existing features in the layout editor to deal
with this: (1) Outline mode, which renders rectangles around all
views, and (2) Padding mode, which adds 10 pixels of padding to all
views. In combination, these two modes will create a rectangle for
empty layouts making them visible and user-manipulatable -- you can
for example select or drop into them.
This changeset attempts to make dealing with these types of containers
easier and more discoverable. It adds a new temporary mode where empty
containers (and only empty containers) are automatically padded and
have their outlines painted. And more importantly, this is only done
in some limited scenarios: When you drag into, or drag within, the
layout canvas. As soon as you finish the drag, empty containers
disappear again.
Unlike padding mode, we don't enlarge the design surface itself, since
this mode comes and goes easily and frequently.
In addition to this, there is special handling for selection. If you
select a zero-sized element (which for example is automatically done
when you drop a new layout, and which can also be done by clicking in
the outline), then the element is also revealed similar to the
show-empty mode, but in this case only the selected item and not any
other invisible containers are shown.
Change-Id: Ibf3ec6a080a50a8f0f55919c3d3e6c4d2890468d
Xavier Ducrohet [Wed, 10 Nov 2010 00:19:59 +0000 (16:19 -0800)]
Merge "Fix ADT to build with the new layoutlib API."
Xavier Ducrohet [Wed, 10 Nov 2010 00:18:26 +0000 (16:18 -0800)]
Fix ADT to build with the new layoutlib API.
Also make the custom cleaning of the layoutlib looper
only done through API 4. Newer bridge can do their own clean up.
Change-Id: I1ee128e09912df53e110094d8909f81bc6a788e3
Xavier Ducrohet [Wed, 10 Nov 2010 00:04:34 +0000 (16:04 -0800)]
Merge "New layoutlib API."
Xavier Ducrohet [Tue, 9 Nov 2010 02:13:22 +0000 (18:13 -0800)]
New layoutlib API.
This is the new API to move to a stateful layoutlib, allowing
for faster actions on an inflated layout.
Change-Id: Ice6324c056efc6e82d5760b5f4e3d40b58938368
Tor Norbye [Tue, 9 Nov 2010 21:31:18 +0000 (13:31 -0800)]
Merge "Don't unregister listeners from disposed widget"
Tor Norbye [Tue, 9 Nov 2010 20:38:50 +0000 (12:38 -0800)]
Merge "Fix icon painting transparency for the palette"
Tor Norbye [Tue, 9 Nov 2010 17:28:12 +0000 (09:28 -0800)]
Fix icon painting transparency for the palette
The icons shown in the palette do not have transparency applied to
them, which means that you end up with white squares on a white
background. This looks okay in the outline view where the icons are
shown on a white background, but it does not look good in the palette
where they are on a gray background.
This changeset fixes the icon generation a bit such that it records a
transparent pixel for these icons. It's not an ideal solution since we
only have on/off transparency, not an alpha channel, which means that
we can't have a smoothly anti-aliased edge of the circles regardless
of the background. Luckily, a light color seems to work fine for both
cases.
While I was at it I also adjusted the font positioning slightly on the
Mac platform for some letters that needed it.
Change-Id: Idf5a4f6709096935122bfe05cfecffc63e74a863
Tor Norbye [Tue, 9 Nov 2010 01:14:52 +0000 (17:14 -0800)]
Don't unregister listeners from disposed widget
This changeset fixes a couple of exceptions on shutdown which stem
from the fact that once a widget is disposed it's an error to attempt
to remove listeners from it.
Change-Id: Ie4b1049668805c6e9bbedd1f7f0cf480e2d68c9d
Tor Norbye [Mon, 8 Nov 2010 21:41:23 +0000 (13:41 -0800)]
Merge "Add autoformatting of XML, and improved manual formatting"
Tor Norbye [Fri, 5 Nov 2010 20:56:04 +0000 (13:56 -0700)]
Add autoformatting of XML, and improved manual formatting
This changeset improves the formatting of XML edited by the layout
editor in two ways:
(1) It improves the way the layout editor handles insertion and
deletion into the XML document; it looks up the indentation of the
sibling and parent elements and attempts to correctly indent new
elements based on the existing surrounding formatting, and it also
attempts to clean things up correctly on element deletion.
(2) It adds a new user option for turning on automatic XML
formatting. When this is on, it will invoke the Eclipse XML formatter
on portions of the XML after each edit. This will ensure that the
document adheres to the user's preferred formatting settings (maximum
line width, tabs versus spaces, line breaks before attributes, etc.
Change-Id: I74f9a4240a8c5ca4295c01f3b55751ef10b1c1b0
Tor Norbye [Sat, 6 Nov 2010 01:07:51 +0000 (18:07 -0700)]
Merge "Sort palette contents"
Tor Norbye [Fri, 5 Nov 2010 23:59:55 +0000 (16:59 -0700)]
Sort palette contents
The palette has many of the Android views in a seemingly random
order. This changeset ensures that they are ordered alphabetically.
Change-Id: I675265747e7835c933fe8e2c7f99dc3c64e6bfaf