IP Library Granted Patent US 10,318,624
Granted Patent B1
US 10,318,624 · App. 11/647,944 · Granted Jun 11, 2019

Infinite canvas

Inventors: Roger Rock Rosner (Mountain View, CA); Jay Christopher Capela (Santa Cruz, CA); Yaniv Gur (Pittsburgh, PA); Christopher Douglas Weeldreyer (San Carlos, CA); Matthew Ross Lehrian (Pittsburgh, PA)
Assignee: Apple Inc.
G06F17/246G06F17/211G06F17/245G06T11/206
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,318,624
App. No.
11/647,944
Granted
Jun 11, 2019
Kind
B1
Abstract

Providing an infinite or seemingly infinite canvas as a workspace is disclosed. In some embodiments, an ability to add to a displayed canvas and view simultaneously one or more table objects, each of which has associated with it an ability to define the content of a first cell by reference to one or more other cells such that the content of the first cell is updated automatically and without further human intervention if the content of one or more of the one or more other cells is changed, is provided.

Claims (41)

1. A method for providing a spreadsheet application, comprising:

using processing circuitry configured to execute instructions stored on a memory to provide a spreadsheet interface, wherein a workspace of the spreadsheet interface comprises a canvas extending in an x-direction or a y-direction beyond a visible portion of the workspace within the spreadsheet interface, wherein each time a boundary of the visible portion of the workspace is approached, the boundary is extended such that a portion of the canvas that was beyond the visible portion of the workspace is within the visible portion of the workspace; and

using the processing circuitry to provide an ability to add to the canvas a set of spreadsheet cells encapsulated into a first finite table object and a chart encapsulated in a second finite object, wherein each of at least a subset of the cells is associated with spreadsheet functionality and wherein the second finite object updates automatically based at least in part on content from the first finite table object, and the second finite object can be formatted, moved around, resized, scaled as a single object, or any combination thereof.

2. A method as recited in claim 1 , wherein the canvas comprises an infinite canvas.

3. A method as recited in claim 1 , wherein the canvas comprises a finite canvas that is orders of magnitude larger than a portion of the canvas that is occupied by content.

4. A method as recited in claim 1 , comprising using the processing circuitry to provide the ability to add to the canvas one or more objects of one or more of the following types: text boxes, charts, graphs, shapes, images, photographs, graphics, animations, multimedia content, and controls.

5. A method as recited in claim 1 , comprising using the processing circuitry to display a paginated view of the canvas.

6. A method as recited in claim 1 , comprising using the processing circuitry to receive an indication that a third object is desired to be added to the canvas.

7. A method as recited in claim 6 , wherein the third object comprises a finite object.

8. A method as recited in claim 6 , wherein the third object is included in a set of one or more objects and the indication is included in a set of one or more indications indicating that the set of one or more objects is desired to be added to the canvas.

9. A method as recited in claim 1 , wherein the set of spreadsheet cells comprises one or more rows and columns of cells.

10. A method as recited in claim 1 , wherein the spreadsheet functionality includes one or more of: entering data into a cell, entering a formula into a cell, entering a control into a cell, including in a cell a reference to another cell in the same table, including in a cell a reference to another cell in another table, including in a cell a reference to another object, including in a cell a reference to another object in a sheet different from a sheet in which the table is included, and updating a value of a cell when a reference included in the cell changes.

11. A method as recited in claim 6 , comprising using the processing circuitry to display the third object on the canvas.

12. A method as recited in claim 11 , comprising using the processing circuitry to format the third object in response to receiving an indication associated with formatting.

13. A method as recited in claim 11 , wherein the third object comprises a table and comprising using the processing circuitry to format the table at least in part with a predefined style format.

14. A method as recited in claim 11 , comprising using the processing circuitry to scale the third object in response to receiving an indication associated with scaling.

15. A method as recited in claim 11 , comprising using the processing circuitry to resize the third object in response to receiving an indication associated with resizing.

16. A method as recited in claim 11 , comprising using the processing circuitry to change a position of the third object on the canvas in response to receiving an indication associated with changing the position of the object on the canvas.

17. A method as recited in claim 11 , comprising using the processing circuitry to display the third object in a position on the canvas to which it has been dragged and dropped.

18. A method as recited in claim 11 , comprising using the processing circuitry to dynamically update the display of the third object while one or more of a size of the object, a position of the object, and a page distribution of the object are being modified.

19. A method as recited in claim 11 , comprising using the processing circuitry to display a paginated view of the canvas and dynamically update the paginated view while one or more of a size of the third object, a position of the third object, and a page distribution of the third object are being modified.

20. A system for providing a spreadsheet application, comprising:

processing circuitry configured to execute instructions stored on a memory configured to:

provide a spreadsheet interface, wherein a workspace of the spreadsheet interface comprises a canvas extending in an x-direction or a y-direction beyond a visible portion of the workspace within the spreadsheet interface, wherein each time a boundary of the visible portion of the workspace is approached, the boundary is extended such that a portion of the canvas that was beyond the visible portion of the workspace is within the visible portion of the workspace; and

provide an ability to add to the canvas a set of spreadsheet cells encapsulated into a first finite table object and a chart encapsulated in a second finite object, wherein each of at least a subset of the cells is associated with spreadsheet functionality and wherein the second finite object updates automatically based at least in part on content from the first finite table object, and the second finite object can be formatted, moved around, resized, scaled as a single object, or any combination thereof; and

the memory coupled to the processing circuitry and configured to provide instructions to the processing circuitry.

21. A system as recited in claim 20 , wherein the canvas comprises an infinite canvas.

22. A system as recited in claim 20 , wherein the canvas comprises a finite canvas that is orders of magnitude larger than a portion of the canvas that is occupied by content, wherein an order of magnitude is an order of ten.

23. A system as recited in claim 20 , wherein the processor is configured to receive an indication that an object is desired to be added to the canvas.

24. A system as recited in claim 23 , wherein the object comprises a finite object.

25. A system as recited in claim 23 , wherein the processor is configured to display the object on the canvas.

26. A computer program product for providing a spreadsheet application, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

processing circuitry configured to execute instructions stored on a memory to provide a spreadsheet interface, wherein a workspace of the spreadsheet interface comprises a canvas extending in an x-direction or a y-direction beyond a visible portion of the workspace within the spreadsheet interface, wherein each time a boundary of the visible portion of the workspace is approached, the boundary is extended such that a portion of the canvas that was beyond the visible portion of the workspace is within the visible portion of the workspace; and

the processing circuitry to provide an ability to add to the canvas a set of spreadsheet cells encapsulated into a first finite table object and a chart encapsulated in a second finite object, wherein each of at least a subset of the cells is associated with spreadsheet functionality and wherein the second finite object updates automatically based at least in part on content from the first finite table object, and the second finite object can be formatted, moved around, resized, scaled as a single object, or any combination thereof.

27. A computer program product as recited in claim 26 , wherein the canvas comprises an infinite canvas.

28. A computer program product as recited in claim 26 , wherein the canvas comprises a finite canvas that is orders of magnitude larger than a portion of the canvas that is occupied by content, wherein an order of magnitude is an order of ten.

29. A computer program product as recited in claim 26 , the computer program product comprising computer instructions for the processing circuitry to provide the ability to add to the canvas one or more objects of one or more of the following types: text boxes, charts, graphs, shapes, images, photographs, graphics, animations, multimedia content, and controls.

30. A computer program product as recited in claim 26 , the computer program product comprising computer instructions for the processing circuitry to receive an indication that an object is desired to be added to the canvas.

31. A computer program product as recited in claim 30 , wherein the object comprises a finite object.

32. A computer program product as recited in claim 26 , wherein the set of spreadsheet cells comprises one or more rows and columns of cells.

33. A computer program product as recited in claim 30 , the computer program product comprising computer instructions for the processing circuitry to display the object on the canvas.

Assignments (2)
CHANGE OF NAME Recorded May 3, 2007
From: APPLE COMPUTER, INC.
To: APPLE INC.
Reel/Frame 019246/0293 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2006
From: ROSNER, ROGER ROCK; CAPELA, JAY CHRISTOPHER; GUR, YANIV; WEELDREYER, CHRISTOPHER DOUGLAS; LEHRIAN, MATTHEW ROSS
To: APPLE COMPUTER, INC.
Reel/Frame 018771/0156 →
Cited By (21)
US 12,197,560 US 12,260,190 US 12,271,849 US 12,314,882 US 12,353,419 US 12,367,011 US 12,379,835 US 12,430,825 US 12,572,867 US 12,573,105 US 12,586,268 US 12,619,833 US 12,639,402 US 12,645,759 US 12,694,636 US 12,699,962 US 12,705,552 US 12,705,579 US 12,711,259 US 12,711,464 US 12,717,468