Skip to content

Commit e3c4a2f

Browse files
committed
wip: global update activity
1 parent 85fa3c5 commit e3c4a2f

6 files changed

Lines changed: 35 additions & 10 deletions

File tree

src/vs/workbench/browser/activity.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,7 @@ export interface IActivity {
1212
cssClass: string;
1313
}
1414

15-
export const Extensions = {
16-
Activities: 'workbench.contributions.activities'
17-
};
15+
export const ActivityExtensions = 'workbench.contributions.activities';
1816

1917
export interface IActivityRegistry {
2018
registerActivity(descriptor: IConstructorSignature0<IActivity>): void;
@@ -36,4 +34,4 @@ export class ActivityRegistry implements IActivityRegistry {
3634
}
3735
}
3836

39-
Registry.add(Extensions.Activities, new ActivityRegistry());
37+
Registry.add(ActivityExtensions, new ActivityRegistry());

src/vs/workbench/browser/parts/activitybar/activitybarPart.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ import { Builder, $, Dimension } from 'vs/base/browser/builder';
1515
import { Action } from 'vs/base/common/actions';
1616
import { ActionsOrientation, ActionBar, IActionItem, Separator } from 'vs/base/browser/ui/actionbar/actionbar';
1717
import { ViewletDescriptor } from 'vs/workbench/browser/viewlet';
18-
import { IActivity, Extensions as ActivityExtensions, IActivityRegistry } from 'vs/workbench/browser/activity';
18+
import { IActivity, ActivityExtensions, IActivityRegistry } from 'vs/workbench/browser/activity';
1919
import { Registry } from 'vs/platform/platform';
2020
import { Part } from 'vs/workbench/browser/part';
2121
import { IViewlet } from 'vs/workbench/common/viewlet';
22-
import { ToggleViewletPinnedAction, ViewletActivityAction, ActivityAction, ViewletActionItem, ViewletOverflowActivityAction, ViewletOverflowActivityActionItem } from 'vs/workbench/browser/parts/activitybar/activitybarActions';
22+
import { ToggleViewletPinnedAction, ViewletActivityAction, ActivityAction, ActivityActionItem, ViewletActionItem, ViewletOverflowActivityAction, ViewletOverflowActivityActionItem } from 'vs/workbench/browser/parts/activitybar/activitybarActions';
2323
import { IViewletService } from 'vs/workbench/services/viewlet/browser/viewlet';
2424
import { IActivityBarService, IBadge } from 'vs/workbench/services/activity/common/activityBarService';
2525
import { IPartService, Position as SideBarPosition } from 'vs/workbench/services/part/common/partService';
@@ -47,10 +47,11 @@ class GlobalActivityAction extends ActivityAction {
4747
}
4848
}
4949

50-
class GlobalActivityActionItem extends ViewletActionItem {
50+
class GlobalActivityActionItem extends ActivityActionItem {
5151

5252
onClick(event: Event): void {
5353
DOM.EventHelper.stop(event, true);
54+
console.log('hello world');
5455
// fire up native menu around this.builder.getHTMLElement()
5556
}
5657
}
@@ -199,7 +200,7 @@ export class ActivitybarPart extends Part implements IActivityBarService {
199200
this.createViewletSwitcher($result.clone());
200201

201202
// Top Actionbar with action items for each viewlet action
202-
this.createActivityActionBar($result.getHTMLElement());
203+
this.createGlobalActivityActionBar($result.getHTMLElement());
203204

204205
// Contextmenu for viewlets
205206
$(parent).on('contextmenu', (e: MouseEvent) => {
@@ -273,8 +274,8 @@ export class ActivitybarPart extends Part implements IActivityBarService {
273274
this.extensionService.onReady().then(() => this.updateViewletSwitcher());
274275
}
275276

276-
private createActivityActionBar(container: HTMLElement): void {
277-
const activityRegistry = Registry.as<IActivityRegistry>(ActivityExtensions.Activities);
277+
private createGlobalActivityActionBar(container: HTMLElement): void {
278+
const activityRegistry = Registry.as<IActivityRegistry>(ActivityExtensions);
278279
const descriptors = activityRegistry.getActivities();
279280
const actions = descriptors
280281
.map(d => this.instantiationService.createInstance(d))

src/vs/workbench/browser/parts/activitybar/media/activitybarpart.css

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@
99

1010
.monaco-workbench > .activitybar > .content {
1111
height: 100%;
12+
display: flex;
13+
flex-direction: column;
14+
justify-content: space-between;
1215
}
1316

1417
.monaco-workbench > .activitybar > .content .monaco-action-bar {
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
/*---------------------------------------------------------------------------------------------
2+
* Copyright (c) Microsoft Corporation. All rights reserved.
3+
* Licensed under the MIT License. See License.txt in the project root for license information.
4+
*--------------------------------------------------------------------------------------------*/
5+
6+
.update-activity {
7+
-webkit-mask: url('update.svg') no-repeat 50% 50%;
8+
-webkit-mask-size: 22px;
9+
}
Lines changed: 3 additions & 0 deletions
Loading

src/vs/workbench/parts/update/electron-browser/update.contribution.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,14 @@
66
'use strict';
77

88
import * as nls from 'vs/nls';
9+
import 'vs/css!./media/update.contribution';
910
import { Registry } from 'vs/platform/platform';
1011
import { IWorkbenchContributionsRegistry, Extensions as WorkbenchExtensions } from 'vs/workbench/common/contributions';
1112
import { ShowCurrentReleaseNotesAction, UpdateContribution } from 'vs/workbench/parts/update/electron-browser/update';
1213
import { ReleaseNotesEditor } from 'vs/workbench/parts/update/electron-browser/releaseNotesEditor';
1314
import { ReleaseNotesInput } from 'vs/workbench/parts/update/electron-browser/releaseNotesInput';
1415
import { EditorDescriptor } from 'vs/workbench/browser/parts/editor/baseEditor';
16+
import { IActivityRegistry, ActivityExtensions, IActivity } from 'vs/workbench/browser/activity';
1517
import { IEditorRegistry, Extensions as EditorExtensions } from 'vs/workbench/common/editor';
1618
import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors';
1719
import { IWorkbenchActionRegistry, Extensions as ActionExtensions } from 'vs/workbench/common/actionRegistry';
@@ -52,3 +54,12 @@ configurationRegistry.registerConfiguration({
5254
}
5355
}
5456
});
57+
58+
class UpdateGlobalActivity implements IActivity {
59+
id: string = 'update.activity';
60+
name: string = 'Update';
61+
cssClass: string = 'update-activity';
62+
}
63+
64+
Registry.as<IActivityRegistry>(ActivityExtensions)
65+
.registerActivity(UpdateGlobalActivity);

0 commit comments

Comments
 (0)